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)