Difference between revisions of "32v 1m grep"
From Computer History Wiki
(New page: GREP(1) UNIX Programmer's Manual GREP(1) == NAME == grep, egrep, fgrep - search a file for a pattern == SYNOPSIS == grep [ option ] ... expression [...) |
(No difference)
|
Latest revision as of 14:15, 26 October 2009
GREP(1) UNIX Programmer's Manual GREP(1)
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 _g_r_e_p family search the input _f_i_l_e_s (standard
input default) for lines matching a pattern. Normally, each
line found is copied to the standard output. _G_r_e_p patterns
are limited regular expressions in the style of _e_d(1); it
uses a compact nondeterministic algorithm. _E_g_r_e_p patterns
are full regular expressions; it uses a fast deterministic
algorithm that sometimes needs exponential space. _F_g_r_e_p
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 (_f_g_r_e_p 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 block number on which it
was found. This is sometimes useful in locating disk
block numbers by context.
-e _e_x_p_r_e_s_s_i_o_n
Same as a simple _e_x_p_r_e_s_s_i_o_n argument, but useful when
the _e_x_p_r_e_s_s_i_o_n begins with a -.
-f _f_i_l_e
The regular expression (_e_g_r_e_p) or string list (_f_g_r_e_p)
is taken from the _f_i_l_e.
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 _e_x_p_r_e_s_s_i_o_n as they are also
meaningful to the Shell. It is safest to enclose the entire
_e_x_p_r_e_s_s_i_o_n argument in single quotes ' '.
_F_g_r_e_p searches for lines that contain one of the (newline-
separated) _s_t_r_i_n_g_s.
_E_g_r_e_p 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 (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 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 * (+, ?) 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.
SEE ALSO
ed(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
Ideally there should be only one _g_r_e_p, but we don't know a
single algorithm that spans a wide enough range of space-
time tradeoffs.
Lines are limited to 256 characters; longer lines are trun-
cated.