Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fgrep(1) — bsd — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ex(1)

sed(1)

sh(1)



GREP(1-BSD)         RISC/os Reference Manual          GREP(1-BSD)



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 default) for lines matching a pattern.  Normally, each
     line found is copied to the standard output.  grep patterns
     are limited regular expressions in the style of ex(1); it
     uses a compact nondeterministic algorithm.  egrep patterns
     are full regular expressions; it uses a fast deterministic
     algorithm that sometimes 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.

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

     -c   Only a count of matching lines is printed.

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

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

     -b   Each line is preceded by the file block number on which
          it was found.  The first block is numbered 0.  The
          block size used to compute the block number is either
          the file logical blocksize if that is nonzero
          (st_blksize value returned by fstat(2) of the file) or
          8K by default.  This is sometimes useful in locating
          disk block numbers by context.

     -h   Never print filename headers with output lines.

     -o   Always print filename headers with output lines.

     -i   The case of letters is ignored in making comparisons -
          that is, upper and lower case are considered identical.

     -s   Silent mode.  Nothing is printed (except error mes-
          sages).  This is useful for checking the error status.
          Note that this option will terminate searching in the



                        Printed 11/19/92                   Page 1





GREP(1-BSD)         RISC/os Reference Manual          GREP(1-BSD)



          current file.

     -w   (grep only.)  The expression is searched for as a word
          (as if surrounded by `\<' and `\>', see ex(1).)

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

     In all cases the file name is shown if there is more than
     one input file.  Care should be taken when using the charac-
     ters $ * [ ^ | ( ) 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 follow-
     ing description `character' excludes newline:

          A \ followed by a single character other than newline
          matches that character.

          The character ^ matches the beginning of a line.

          The character $ matches the end of a line.

          A . (period) 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.  Similarly, [^] matches any
          character not in the string.  Ranges of ASCII character
          codes may be abbreviated as in `a-z0-9'.  A ] may occur
          only as the first character of the string.  A literal -
          must be placed where it can't be mistaken as a range
          indicator.

          A regular expression followed by an * (asterisk)
          matches a sequence of 0 or more matches of the regular
          expression.  A regular expression followed by a +
          (plus) matches a sequence of 1 or more matches of the
          regular expression.  A regular expression followed by a
          ? (question mark) matches a sequence of 0 or 1 matches
          of the regular expression.



 Page 2                 Printed 11/19/92





GREP(1-BSD)         RISC/os Reference Manual          GREP(1-BSD)



          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.

     Ideally there should be only one grep, but no single algo-
     rithm spans a wide enough range of space-time tradeoffs.

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

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

BUGS
     grep limits lines to BUFSIZ (see
     /bsd43/usr/include/stdio.h).  fgrep and egrep limit lines to
     the optimal blocksize for the file system (see stat(2-BSD)).

     Lines that exceed these limits are truncated.

     The -s option should not be used with pipes because it will
     cause the command to terminate before the pipe has been emp-
     tied.























                        Printed 11/19/92                   Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026