GREP(1)GREP(1)
NAME
grep, g – search a file for a pattern
SYNOPSIS
grep
[
-bchiLlnsv
]
[
-e
]
pattern
|
-f
patternfile
[
file ...
]
g
[
flags
]
pattern
[
file ...
]
DESCRIPTION
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.
G
invokes
grep
with
-n
(plus aditional flags, if provided)
and forces tagging of output lines by file name. If no files
are listed, it recursively searches the current directory for
all files matching
*.b *.c *.C *.h *.l *.m *.s *.y
*.asm *.cc *.cs *.lx *.cgi *.pl
*.py *.tex *.ms *.java *.xy *.go
*.goc *.cpp
The recursive search can be suppressed by passing g the
-n
flag.
SOURCE
/sys/src/cmd/grep
/rc/bin/g
SEE
ed(1),
awk(1),
sed(1),
sam(1),
regexp(6)
DIAGNOSTICS
Exit status is null if any lines are selected,
or non-null when no lines are selected or an error occurs.