GREP(1) GREP(1)
NAME
grep - search a file for a pattern
SYNOPSIS
grep [ -bchiILlnsv ] [ -e ] pattern | -f patternfile [ 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 charac-
ter as an alternative (substitute for |) with lowest prece-
dence. 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 implementa-
tion folds into lower case all letters in the pattern
and input before interpretation. Matched lines are
printed in their original form.
-I Ignore Unicode variations; use base codepoint. The
implementation folds all letters in the pattern and
input into their base codepoint before interpretation.
Matched lines are printed in their original form. This
may be combined with -i.
-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
Page 1 Plan 9 (printed 11/21/25)
GREP(1) GREP(1)
the entire expression in single quotes '...'. An expression
starting with '*' will treat the rest of the expression as
literal characters.
SOURCE
/sys/src/cmd/grep
SEE ALSO
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.
Page 2 Plan 9 (printed 11/21/25)