glenda.party
term% ls -F
term% pwd
$home/manuals/unix_v7/1/grep
term% cat index.txt
GREP(1)                     General Commands Manual                    GREP(1)



NAME
       grep, egrep, fgrep - search a file for a pattern

SYNOPSIS
       grep [ option ] ...  expression [ file ] ...

       egrep [ option ] ...  [ expression ] [ file ] ...

       fgrep [ option ] ...  [ strings ] [ file ]

DESCRIPTION
       Commands  of the grep family search the input files (standard input de‐
       fault) for lines matching a pattern.   Normally,  each  line  found  is
       copied  to  the  standard  output; unless the -h flag is used, the file
       name is shown if there is more than one input file.

       Grep patterns are limited regular expressions in the style of ed(1); it
       uses  a  compact  nondeterministic  algorithm.  Egrep patterns are full
       regular expressions; it uses a fast deterministic algorithm that  some‐
       times needs exponential space.  Fgrep patterns are fixed strings; it is
       fast and compact.

       The following options are recognized.

       -v     All lines but those matching are printed.

       -c     Only a count of matching lines is printed.

       -l     The names of files with matching lines are listed  (once)  sepa‐
              rated by newlines.

       -n     Each line is preceded by its line number in the file.

       -b     Each line is preceded by the block number on which it was found.
              This is sometimes useful in locating disk block numbers by  con‐
              text.

       -s     No output is produced, only status.

       -h     Do not print filename headers with output lines.

       -y     Lower  case  letters  in  the pattern will also match upper case
              letters in the input (grep only).

       -e expression
              Same as a simple expression argument, but useful  when  the  ex‐
              pression begins with a -.

       -f file
              The  regular  expression (egrep) or string list (fgrep) is taken
              from the file.

       -x     (Exact) only lines matched in their entirety are printed  (fgrep
              only).

       Care  should be taken when using the characters $ * [ ^ | ? ' " ( ) and
       \ in the expression as they are also meaningful to the  Shell.   It  is
       safest to enclose the entire expression argument in single quotes ' '.

       Fgrep  searches  for  lines that contain one of the (newline-separated)
       strings.

       Egrep accepts extended regular expressions.  In the following  descrip‐
       tion `character' excludes newline:

              A \ followed by a single character matches that character.

              The character ^ ($) matches the beginning (end) of a line.

              A .  matches any character.

              A  single  character  not otherwise endowed with special meaning
              matches that character.

              A string enclosed in brackets [] matches  any  single  character
              from  the string.  Ranges of ASCII character codes may be abbre‐
              viated as in `a-z0-9'.  A ] may occur only as the first  charac‐
              ter of the string.  A literal - must be placed where it can't be
              mistaken as a range indicator.

              A regular expression followed by * (+, ?) matches a sequence  of
              0 or more (1 or more, 0 or 1) matches of the regular expression.

              Two  regular expressions concatenated match a match of the first
              followed by a match of the second.

              Two regular expressions separated by | or newline match either a
              match for the first or a match for the second.

              A regular expression enclosed in parentheses matches a match for
              the regular expression.

       The order of precedence of operators at the same parenthesis  level  is
       [] then *+? then concatenation then | and newline.

SEE ALSO
       ed(1), sed(1), sh(1)

DIAGNOSTICS
       Exit  status is 0 if any matches are found, 1 if none, 2 for syntax er‐
       rors or inaccessible files.

BUGS
       Ideally there should be only one grep, but we don't know a single algo‐
       rithm that spans a wide enough range of space-time tradeoffs.

       Lines are limited to 256 characters; longer lines are truncated.



                                                                       GREP(1)