summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/grep/grep.1
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/grep/grep.1')
-rw-r--r--gnu/usr.bin/grep/grep.1234
1 files changed, 234 insertions, 0 deletions
diff --git a/gnu/usr.bin/grep/grep.1 b/gnu/usr.bin/grep/grep.1
new file mode 100644
index 000000000000..57093b6403a3
--- /dev/null
+++ b/gnu/usr.bin/grep/grep.1
@@ -0,0 +1,234 @@
+.TH GREP 1 "1988 December 13" "GNU Project" \" -*- nroff -*-
+.UC 4
+.SH NAME
+grep, egrep \- print lines matching a regular expression
+.SH SYNOPSIS
+.B grep
+[
+.B \-CVbchilnsvwx
+] [
+.BI \- num
+] [
+.B \-AB
+.I num
+] [ [
+.B \-e
+]
+.I expr
+|
+.B \-f
+.I file
+] [
+.I "files ..."
+]
+.SH DESCRIPTION
+.I Grep
+searches the files listed in the arguments (or standard
+input if no files are given) for all lines that contain a match for
+the given
+.IR expr .
+If any lines match, they are printed.
+.PP
+Also, if any matches were found,
+.I grep
+exits with a status of 0, but if no matches were found it exits
+with a status of 1. This is useful for building shell scripts that
+use
+.I grep
+as a condition for, for example, the
+.I if
+statement.
+.PP
+When invoked as
+.I egrep
+the syntax of the
+.I expr
+is slightly different; See below.
+.br
+.SH "REGULAR EXPRESSIONS"
+.RS 2.5i
+.ta 1i 2i
+.sp
+.ti -2.0i
+(grep) (egrep) (explanation)
+.sp
+.ti -2.0i
+\fIc\fP \fIc\fP a single (non-meta) character matches itself.
+.sp
+.ti -2.0i
+\&. . matches any single character except newline.
+.sp
+.ti -2.0i
+\\? ? postfix operator; preceeding item is optional.
+.sp
+.ti -2.0i
+\(** \(** postfix operator; preceeding item 0 or
+more times.
+.sp
+.ti -2.0i
+\\+ + postfix operator; preceeding item 1 or
+more times.
+.sp
+.ti -2.0i
+\\| | infix operator; matches either
+argument.
+.sp
+.ti -2.0i
+^ ^ matches the empty string at the beginning of a line.
+.sp
+.ti -2.0i
+$ $ matches the empty string at the end of a line.
+.sp
+.ti -2.0i
+\\< \\< matches the empty string at the beginning of a word.
+.sp
+.ti -2.0i
+\\> \\> matches the empty string at the end of a word.
+.sp
+.ti -2.0i
+[\fIchars\fP] [\fIchars\fP] match any character in the given class; if the
+first character after [ is ^, match any character
+not in the given class; a range of characters may
+be specified by \fIfirst\-last\fP; for example, \\W
+(below) is equivalent to the class [^A\-Za\-z0\-9]
+.sp
+.ti -2.0i
+\\( \\) ( ) parentheses are used to override operator precedence.
+.sp
+.ti -2.0i
+\\\fIdigit\fP \\\fIdigit\fP \\\fIn\fP matches a repeat of the text
+matched earlier in the regexp by the subexpression inside the nth
+opening parenthesis.
+.sp
+.ti -2.0i
+\\ \\ any special character may be preceded
+by a backslash to match it literally.
+.sp
+.ti -2.0i
+(the following are for compatibility with GNU Emacs)
+.sp
+.ti -2.0i
+\\b \\b matches the empty string at the edge of a word.
+.sp
+.ti -2.0i
+\\B \\B matches the empty string if not at the edge of a word.
+.sp
+.ti -2.0i
+\\w \\w matches word-constituent characters (letters & digits).
+.sp
+.ti -2.0i
+\\W \\W matches characters that are not word-constituent.
+.RE
+.PP
+Operator precedence is (highest to lowest) ?, \(**, and +, concatenation,
+and finally |. All other constructs are syntactically identical to
+normal characters. For the truly interested, the file dfa.c describes
+(and implements) the exact grammar understood by the parser.
+.SH OPTIONS
+.TP
+.BI \-A " num"
+print <num> lines of context after every matching line
+.TP
+.BI \-B " num"
+print
+.I num
+lines of context before every matching line
+.TP
+.B \-C
+print 2 lines of context on each side of every match
+.TP
+.BI \- num
+print
+.I num
+lines of context on each side of every match
+.TP
+.B \-V
+print the version number on the diagnostic output
+.TP
+.B \-b
+print every match preceded by its byte offset
+.TP
+.B \-c
+print a total count of matching lines only
+.TP
+.BI \-e " expr"
+search for
+.IR expr ;
+useful if
+.I expr
+begins with \-
+.TP
+.BI \-f " file"
+search for the expression contained in
+.I file
+.TP
+.B \-h
+don't display filenames on matches
+.TP
+.B \-i
+ignore case difference when comparing strings
+.TP
+.B \-l
+list files containing matches only
+.TP
+.B \-n
+print each match preceded by its line number
+.TP
+.B \-s
+run silently producing no output except error messages
+.TP
+.B \-v
+print only lines that contain no matches for the <expr>
+.TP
+.B \-w
+print only lines where the match is a complete word
+.TP
+.B \-x
+print only lines where the match is a whole line
+.SH "SEE ALSO"
+emacs(1), ed(1), sh(1),
+.I "GNU Emacs Manual"
+.SH INCOMPATIBILITIES
+The following incompatibilities with UNIX
+.I grep
+exist:
+.PP
+.RS 0.5i
+The context-dependent meaning of \(** is not quite the same (grep only).
+.PP
+.B \-b
+prints a byte offset instead of a block offset.
+.PP
+The {\fIm,n\fP} construct of System V grep is not implemented.
+.PP
+.SH BUGS
+GNU \fIe?grep\fP has been thoroughly debugged and tested over a period
+of several years; we think it's a reliable beast or we wouldn't
+distribute it. If by some fluke of the universe you discover a bug,
+send a detailed description (including options, regular expressions,
+and a copy of an input file that can reproduce it) to mike@ai.mit.edu.
+.PP
+.SH AUTHORS
+Mike Haertel wrote the deterministic regexp code and the bulk
+of the program.
+.PP
+James A. Woods is responsible for the hybridized search strategy
+of using Boyer-Moore-Gosper fixed-string search as a filter
+before calling the general regexp matcher.
+.PP
+Arthur David Olson contributed code that finds fixed strings for
+the aforementioned BMG search for a large class of regexps.
+.PP
+Richard Stallman wrote the backtracking regexp matcher that is used
+for \\\fIdigit\fP backreferences, as well as the GNU getopt. The
+backtracking matcher was originally written for GNU Emacs.
+.PP
+D. A. Gwyn wrote the C alloca emulation that is provided so
+System V machines can run this program. (Alloca is used only
+by RMS' backtracking matcher, and then only rarely, so there
+is no loss if your machine doesn't have a "real" alloca.)
+.PP
+Scott Anderson and Henry Spencer designed the regression tests
+used in the "regress" script.
+.PP
+Paul Placeway wrote the original version of this manual page.