GREP
Section: User Commands (1)
Index
Return to Main Contents
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;
unless the
-h
flag is used,
the file name is shown if there is more than one input file.
Grep
patterns are limited regular expressions in the style of
ed(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.
- -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 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.
- -s
-
No output is produced, only status.
- -h
-
Do not print filename headers with output lines.
- -y
-
Lower case letters in the pattern will also match
upper case letters in the input
(grep
only).
- -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.
- -x
-
(Exact) only lines matched in their entirety are printed
(fgrep
only).
Care should be taken when
using the characters
$ * [ ^ | ? ' " ( ) 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 following description `character' excludes
newline:
-
A \ followed by a single character
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
grep,
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 truncated.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- SEE ALSO
-
- DIAGNOSTICS
-
- BUGS
-
This document was created by
man2html,
using the manual pages.
Time: 10:16:13 GMT, December 28, 2024