GREP(1) UNIX Programmer's Manual GREP(1)
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
-
\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
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
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-
S
\bSE
\bEE
\bE A
\bAL
\bLS
\bSO
\bO
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.
Lines are limited to 256 characters; longer lines are trun-
Printed 7/9/88 October 8, 1987 3