Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Apropos / Subsearch:
optional field

GREP(1)                     General Commands Manual                    GREP(1)

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

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

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

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

       Commands  of  the  grep  family  search the input files (standard input
       default) 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-

       -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
              expression 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

       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)

       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.

       ed(1), sed(1), sh(1)

       Exit  status  is  0  if  any matches are found, 1 if none, 2 for syntax
       errors or inaccessible files.

       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.