      M    1992 September 10                                                  GREP(1)           NAME 8      grep, egrep, fgrep - print lines matching a pattern      SYNOPOSISL      grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] pattern | -ffile ] [      files... ]       DESCRIPTION  K      Grep searches the named input files (or standard input if no files are L      named, or the file name - is given) for lines containing a match to the@      given pattern.  By default, grep prints the matching lines.  H      There are three major variants of grep, controlled by the following
      options. L      -G   Interpret pattern as a basic regular expression (see below).  This           is the default. J      -E   Interpret pattern as an extended regular expression (see below).I      -F   Interpret pattern as a list of fixed strings, separated by new- /           lines, any of which is to be matched. L      In addition, two variant programs egrep and fgrep are available.  EgrepK      is similiar (but not identical) to grep -E, and is compatible with the :      historical Unix egrep.  Fgrep is the same as grep -F.  ;      All variants of grep understand the following options: M      -num Matches will be printed with num lines of leading and trailing con- H           text.  However, grep will never print any given line more than           once.       -A num C           Print num lines of trailing context after matching lines.       -B num C           Print num lines of leading context before matching lines.       -C   Equivalent to -2. K      -V   Print the version number of grep to standard error.  This version C           number should be included in all bug reports (see below). I      -b   Print the byte offset within the input file before each line of            output. M      -c   Suppress normal output; instead print a count of matching lines for F           each input file.  With the -v option (see below), count non-           matching lines.       -e pattern J           Use pattern as the pattern; useful to protect patterns beginning           with -.       -f file'           Obtain the pattern from file. K      -h   Suppress the prefixing of filenames on output when multiple files            are searched. K      -i   Ignore case distinctions in both the pattern and the input files. K      -L   Suppress normal output; instead print the name of each input file @           from which no output would normally have been printed.K      -l   Suppress normal output; instead print the name of each input file =           from which output would normally have been printed. J      -n   Prefix each line of output with the line number within its input    M    GNU Project                                                              1             M    GREP(1)                                                  1992 September 10                file. (      -q   Quiet; suppress normal output.H      -s   Suppress error messages about nonexistent or unreadable files.E      -v   Invert the sense of matching, to select non-matching lines. K      -w   Select only those lines containing matches that form whole words. G           The test is that the matching substring must either be at the L           beginning of the line, or preceded by a non-word constituent char-M           acter.  Similarly, it must be either at the end of the line or fol- L           lowed by a non-word constituent character.  Word-constituent char-9           acters are letters, digits, and the underscore. F      -x   Select only those matches that exactly match the whole line.      REGULAR EXPRESSIONS  M      A regular expression is a pattern that describes a set of strings.  Reg- L      ular expressions are constructed analagously to arithmetic expressions,?      by using various operators to combine smaller expressions.   J      Grep understands two different versions of regular expression syntax:H      ``basic'' and ``extended.''  In GNU grep, there is no difference inL      available functionality using either syntax.  In other implementations,L      basic regular expressions are less powerful.  The following descriptionK      applies to extended regular expressions; differences for basic regular +      expressions are summarized afterwards.   M      The fundamental building blocks are the regular expressions that match a J      single character.  Most characters, including all letters and digits,K      are regular expressions that match themselves.  Any metacharacter with D      special meaning may be quoted by preceding it with a backslash.  M      A list of characters enclosed by [ and ] matches any single character in I      that list; if the first character of the list is the caret ^ then it M      matches any character not in the list.  For example, the regular expres- M      sion [0123456789] matches any single digit.  A range of ASCII characters M      may be specified by giving the first and last characters, separated by a J      hyphen.  Finally, certain named classes of characters are predefined.I      Their names are self explanatory, and they are [:alnum:], [:alpha:], F      [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:],J      [:space:], [:upper:], and [:xdigit:].  For example, [[:alnum:]] meansL      [0-9A-Za-z], except the latter form is dependent upon the ASCII charac-K      ter encoding, whereas the former is portable.  (Note that the brackets E      in these class names are part of the symbolic names, and must be M      included in addition to the brackets delimiting the bracket list.)  Most J      metacharacters lose their special meaning inside lists.  To include aM      literal ] place it first in the list.  Similarly, to include a literal ^ K      place it anywhere but first.  Finally, to include a literal - place it 
      last.  K      The period . matches any single character.  The symbol \w is a synonym 9      for [[:alnum:]] and \W is a synonym for [^[:alnum]].   K      The caret ^ and the dollar sign $ are metacharacters that respectively L      match the empty string at the beginning and end of a line.  The symbolsK      \< and \> respectively match the empty string at the beginning and end     M    2                                                              GNU Project             M    1992 September 10                                                  GREP(1)     H      of a word.  The symbol \b matches the empty string at the edge of aM      word, and \B matches the empty string provided it's not at the edge of a 
      word.  L      A regular expression matching a single character may be followed by one%      of several repetition operators: B      ?    The preceding item is optional and matched at most once.@      *    The preceding item will be matched zero or more times.?      +    The preceding item will be matched one or more times. 8      {n}  The preceding item is matched exactly n times.8      {n,} The preceding item is matched n or more times.H      {,m} The preceding item is optional and is matched at most m times.
      {n,m}M           The preceding item is matched at least n times, but not more than m            times.  G      Two regular expressions may be concatenated; the resulting regular I      expression matches any string formed by concatenating two substrings =      that respectively match the concatenated subexpressions.   G      Two regular expressions may be joined by the infix operator |; the K      resulting regular expression matches any string matching either subex-       pression.  M      Repetition takes precedence over concatenation, which in turn takes pre- H      cedence over alternation.  A whole subexpression may be enclosed in4      parentheses to override these precedence rules.  K      The backreference \n, where n is a single digit, matches the substring M      previously matched by the nth parenthesized subexpression of the regular       expression.  I      In basic regular expressions the metacharacters ?, +, {, |, (, and ) M      lose their special meaning; instead use the backslashed versions \?, \+,       \{, \|, \(, and \).  L      In egrep the metacharacter { loses its special meaning; instead use \{.      DIAGNOSTICS  J      Normally, exit status is 0 if matches were found, and 1 if no matchesL      were found.  (The -v option inverts the sense of the exit status.) ExitI      status is 2 if there were syntax errors in the pattern, inaccessible )      input files, or other system errors.       BUGS   L      Email bug reports to bug-gnu-utils@prep.ai.mit.edu.  Be sure to include;      the word ``grep'' somewhere in the ``Subject:'' field.   I      Large repetition counts in the {m,n} construct may cause grep to use L      lots of memory.  In addition, certain other obscure regular expressionsI      require exponential time and space, and may cause grep to run out of       memory.    M    GNU Project                                                              3             M    GREP(1)                                                  1992 September 10     D      Backreferences are very slow, and may require exponential time.                                                                                                              M    4                                                              GNU Project      99