BSD 4_3_Tahoe development
[unix-history] / usr / man / cat1 / egrep.0
GREP(1) UNIX Programmer's Manual GREP(1)
N\bNA\bAM\bME\bE
grep, egrep, fgrep - search a file for a pattern
S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
g\bgr\bre\bep\bp [ option ] ... expression [ file ] ...
e\beg\bgr\bre\bep\bp [ option ] ... [ expression ] [ file ] ...
f\bfg\bgr\bre\bep\bp [ option ] ... [ strings ] [ file ]
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
Commands of the _\bg_\br_\be_\bp family search the input _\bf_\bi_\bl_\be_\bs (standard
input default) for lines matching a pattern. Normally, each
line found is copied to the standard output. _\bG_\br_\be_\bp patterns
are limited regular expressions in the style of _\be_\bx(1); it
uses a compact nondeterministic algorithm. _\bE_\bg_\br_\be_\bp patterns
are full regular expressions; it uses a fast deterministic
algorithm that sometimes needs exponential space. _\bF_\bg_\br_\be_\bp
patterns are fixed strings; it is fast and compact. The
following options are recognized.
-\b-v\bv All lines but those matching are printed.
-\b-x\bx (Exact) only lines matched in their entirety are
printed (_\bf_\bg_\br_\be_\bp only).
-\b-c\bc Only a count of matching lines is printed.
-\b-l\bl The names of files with matching lines are listed
(once) separated by newlines.
-\b-n\bn Each line is preceded by its relative line number in
the file.
-\b-b\bb Each line is preceded by the block number on which it
was found. This is sometimes useful in locating disk
block numbers by context.
-\b-h\bh Never print filename headers with output lines.
-\b-o\bo Always print filename headers with output lines.
-\b-i\bi The case of letters is ignored in making comparisons -
that is, upper and lower case are considered identical.
-\b-s\bs Silent mode. Nothing is printed (except error mes-
sages). This is useful for checking the error status.
-\b-w\bw The expression is searched for as a word (as if sur-
rounded by `\<' and `\>', see _\be_\bx(1).) (_\bg_\br_\be_\bp only)
-\b-e\be _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
Printed 7/9/88 October 8, 1987 1
GREP(1) UNIX Programmer's Manual GREP(1)
Same as a simple _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn argument, but useful when
the _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn begins with a -.
-\b-f\bf _\bf_\bi_\bl_\be
The regular expression (_\be_\bg_\br_\be_\bp) or string list (_\bf_\bg_\br_\be_\bp)
is taken from the _\bf_\bi_\bl_\be.
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 _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn as they are also
meaningful to the Shell. It is safest to enclose the entire
_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn argument in single quotes ' '.
_\bF_\bg_\br_\be_\bp searches for lines that contain one of the (newline-
separated) _\bs_\bt_\br_\bi_\bn_\bg_\bs.
_\bE_\bg_\br_\be_\bp 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 .\b. (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. 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.
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.
Printed 7/9/88 October 8, 1987 2
GREP(1) UNIX Programmer's Manual GREP(1)
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 _\bg_\br_\be_\bp, but we don't know a
single algorithm that spans a wide enough range of space-
time tradeoffs.
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
ex(1), sed(1), sh(1)
D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
Exit status is 0 if any matches are found, 1 if none, 2 for
syntax errors or inaccessible files.
B\bBU\bUG\bGS\bS
Lines are limited to 256 characters; longer lines are trun-
cated.
Printed 7/9/88 October 8, 1987 3