386BSD 0.1 development
authorWilliam F. Jolitz <wjolitz@soda.berkeley.edu>
Wed, 1 Mar 1989 03:42:46 +0000 (19:42 -0800)
committerWilliam F. Jolitz <wjolitz@soda.berkeley.edu>
Wed, 1 Mar 1989 03:42:46 +0000 (19:42 -0800)
Work on file usr/src/usr.bin/grep/grep.1

Co-Authored-By: Lynne Greer Jolitz <ljolitz@cardio.ucsf.edu>
Synthesized-from: 386BSD-0.1

usr/src/usr.bin/grep/grep.1 [new file with mode: 0644]

diff --git a/usr/src/usr.bin/grep/grep.1 b/usr/src/usr.bin/grep/grep.1
new file mode 100644 (file)
index 0000000..3df62f3
--- /dev/null
@@ -0,0 +1,265 @@
+.TH GREP 1 "1988 December 13" "GNU Project"
+.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
+will exit with a status of 0, but if no matches were found it will exit
+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 by several people
+over a period of several months; 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 me,
+mike@wheaties.ai.mit.edu.
+.PP
+There is also a newsgroup, gnu.utils.bug, for reporting FSF utility
+programs' bugs and fixes; but before reporting something as a bug,
+please try to be sure that it really is a bug, not a misunderstanding
+or a deliberate feature.  Also, include the version number of the
+utility program you are running in \fIevery\fR bug report that you
+send in.  Please do not send anything but bug reports to this
+newsgroup.
+.PP
+.SH AVAILABILITY
+.PP
+GNU
+.I grep
+is free; anyone may redistribute copies of 
+.I grep
+to
+anyone under the terms stated in the 
+GNU General Public License,
+a copy of which may be found in each copy of 
+.IR "GNU Emacs" .
+See also the comment at the beginning of the source code file grep.c.
+.PP
+Copies of GNU
+.I grep
+may sometimes be received packaged with distributions of Unix systems,
+but it is never included in the scope of any license covering those
+systems.  Such inclusion violates the terms on which distribution
+is permitted.  In fact, the primary purpose of the General Public
+License is to prohibit anyone from attaching any other restrictions
+to redistribution of any of the Free Software Foundation programs.
+.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 getopt that
+is provided for 4.2BSD sites.  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.