/*------------------------------------------------------------------- DISCLAIMER: THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES ----------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/ /* grep: search files for text patterns */ /* Usage: grep pattern FN [FT [FM]] */ /* References: https://sites.google.com/site/mike99mac/ */ /*--------------------------------------------------------------------*/ Address COMMAND Parse Arg args /* get all arguments */ Parse Var args pattern args /* pattern remains mixed case */ Parse Upper var args fn ft fm . /* fn, ft and fm are upper cased */ If (pattern = '' | pattern = '?') Then Do If (pattern = '') Then Say 'Error: Missing pattern' Say 'Name: grep - search files for text patterns' Say 'Usage: grep pattern FN [FT [FM]]' Exit 1 End 'PIPE COMMAND LISTFILE' fn ft fm '| STEM files.' If (files.0 = 0) Then Do Say 'No files found matching' fn ft fm Exit 2 End Do i = 1 to files.0 'PIPE |<' files.i '| locate /'||pattern||'/ | stem lines.' Do j = 1 to lines.0 Say files.i||':' lines.j End End