Grep
searches the input
files
(standard input default)
for lines that match the
pattern,
a regular expression as defined in
regexp(6)
with the addition of a newline character as an alternative
(substitute for
|)
with lowest precedence.
Normally, each line matching the pattern is `selected',
and each selected line is copied to the standard output.
The options are
- -c
- Print only a count of matching lines.
- -h
- Do not print file name tags (headers) with output lines.
- -e
- The following argument is taken as a
pattern.
This option makes it easy to specify patterns that
might confuse argument parsing, such as
-n.
- -i
- Ignore alphabetic case distinctions. The implementation
folds into lower case all letters in the pattern and input before
interpretation. Matched lines are printed in their original form.
- -l
- (ell) Print the names of files with selected lines; don't print the lines.
- -L
- Print the names of files with no selected lines;
the converse of
-l.
- -n
- Mark each printed line with its line number counted in its file.
- -s
- Produce no output, but return status.
- -v
- Reverse: print lines that do not match the pattern.
- -f
- The pattern argument is the name of a file containing regular
expressions one per line.
- -b
- Don't buffer the output: write each output line as soon as it is discovered.
Output lines are tagged by file name when there is more than one
input file.
(To force this tagging, include
/dev/null
as a file name argument.)
Care should be taken when
using the shell metacharacters
$*[^|()=\
and newline
in
pattern;
it is safest to enclose the
entire expression
in single quotes
'...'.
An expression starting with '*'
will treat the rest of the expression
as literal characters.