Here are three utilities for os/2.
You may copy and distribute this program freely, provided that:

    1)   No fee is charged for such copying and distribution.
    2)   It is distributed ONLY in its original, unmodified state.
    3)   It is not distributed as part of any commercial product or service.

All of the tools have a /help option.  Inclosed is the output from that 
option.

Our EMAIL address is uunet!pacvax!dch

David C. Hornbaker
Pacer Software Inc.
1900 West Park Drive
Westborough Ma. 01581

SCAN 5.1a (OS/2) [Copyright (C) 1989, Pacer Software, Inc. All rights reserved]

Searches one or more files for one or more strings. Usage is:

scan {d:}path_spec{;file_spec;...} string1 {string2 ... string20}
        {/No_Case, /NC} {/STatistics} {/Fullpath} {/EDitlist {name}}
        {/S, /TREEwalk, /TW}
        {/EXecute <command line in double quotes>} {/Terse}
  or

scan {/Help}

All options may be given using a dash (-) instead of a forward slash (/).
The filename portion of the path specification may contain wildcards. It may
also contain more than one filename specification by using semicolons between
each name. More than one search string can be given. For example,

   scan \some.dir\*.c;*.h  search_for_me  and_me

will scan all .C and .H files in \SOME.DIR for "search_for_me" and "and_me".
A search string can be enclosed between double quotes if literal spaces are
needed. Use a backslash-quote (\") to enter a literal double quote.

"/S" or "/TW" causes all subdirectories to be scanned.

"/EDitlist" causes a list of the filenames found to contain a match to be
put into the filename given, or "__EDLIST.___" if no name is specified.

"/EXecute" causes <command line in quotes> to be executed with all occurences
of the token "%s" replaced with the just-found filename. This is done for
each file found to contain a match. For example,

   scan *.c "look for me" /exec "myeditor %s /X"

would invoke the command "myeditor filename /X" for each filename with the
suffix ".c" which contained the string "look for me".

LD 5.1a (OS/2) [Copyright (C) 1989, Pacer Software, Inc. All rights reserved.]
"ListDir". Lists the contents of a directory.  Usage is:

    LD {{d:}path_spec_and_wildcard} {2nd wildcard {3rd...}}

    what:  {/DIr | /File} {/Modified} {/CRC} {/SUMsize, /SS} {/Room}
           {/After {mm/dd/yy}{,hh:mm:ss}} {/Before {mm/dd/yy}{,hh:mm:ss}}
           {/Subdirs, /TREewalk, /TW}
    how:   {/Normal | /Detail | /Terse | /SUFfix} {/FULlpath, /FP}
           {/ATtributes} {/ONName | /ONDatetime | /ONSize} {/REversesort}
           {/HEAder | /NOHeader, /NH} {/Pause | /NOPause, /NOWait, /NW}
           {/COmmas | /NOCOmmas} {/UPcase, /UC | /LOWcase, /LC | /MIXcase, /MC}
           {/DELete {/NOQuery, /NQ}}
    other: {/NOSTDoptions, /NSO} {/Help} {/KS}

  The minimum recognized option is shown in capital letters.  All options are
   order-independent: If any conflict, the one to the right takes precedence.
  A '-' may be used instead of a '/' for all options.  (If either a '-' or '/'
   is part of a pathname or wildcard, enclose that name in double quotes.)
  The filename portion of the path specification may contain a wildcard. Up to
   29 more wildcards can be given, but only the first may have a path spec.
  /After selects files modified 'on or after', /Before just 'before'.
  /Subdirs will cause all subdirectories below the initial start point to be
   searched as well. (/Terse/FULl is very useful with /Subdirs.)
  /ONDatetime causes a sort on date and time, /ONSize on file size, /ONName on
   name (the default).  /REversesort reverses the indicated sort order.
  /CRC will calculate and display a CRC of the contents of each file.
  /ONDate, /ONSize, /FULlpath, /ATtributes and /CRC imply /Detail.
  /SUFfix produces a special by-suffix display.  In this case, most other
   display/sort options are ignored.
  The /DELete option can only delete files: Directories are ignored. Unless
   the /NOQuery option is given the user is asked to verify deletes.
  Unless explicitly specified, PAUSE is ON for normal (to-the-tube) output,
   OFF for redirected output.
  /Room displays the total disk space used and available.
  /SUMsize display a sum of all files sizes, plus actual disk-sector usage.
  LD may be customized via the environment variables LDDFLTOPT and LDSTDOPT.
   If no explicit options or arguments are given, the value of LDDFLTOPT is
   used.  If any explicit options or arguments are given, the value of LDSTDOPT
   is prepended to those given before processing.
  /NOSTDoptions causes LDSTDOPT to be ignored.
  /UPcase causes all names to be displayed in upper case, /LOWcase in lower
   case (the default).  /MIXcase causes directories to be displayed in upper
   case, files in lower.
             << Designed and developed by Kevin C. Little >>

TW 4.3 (OS/2) [Copyright (C) 1989, Pacer Software, Inc. All rights reserved.]

TreeWalk: walks down directories, executing a specified program
          in each sub-directory it enters.

Usage is
    tw  {tw options if any}  program_name  {program arguments and options}

where "tw options if any" include
    /Level <maximum walk depth>     /INclude <dir spec>
    /WAlkall                        /EXclude <dir spec>
    /Terse

A "<dir spec>" may contain wildcards. If "/EX" is given, any dir matching
any "/EX" spec is skipped. For "/IN", if any is given then only dirs matching
one of the "/IN" specs are included. (The exception is the current directory,
".", which is always included unless explicitly excluded by a "/EX . ".) If
no "/IN"s are given, all subdirectories are included by default. "/WA" forces
a complete walk of the entire directory tree decending from the start point,
thus allowing "/IN" and "/EX" to control only the execution of "program_name"
and not the walk itself. Otherwise they do control the walk, and thus in turn
the execution.
