home *** CD-ROM | disk | FTP | other *** search
-
-
-
- GREP(1) GREP(1)
-
-
- NAME
- grep, egrep - print lines matching a regular expression
-
- SYNOPSIS
- grep [ -CVbchilnsvwx ] [ -num ] [ -AB num ] [ [ -e ] expr
- | -f file ] [ files ... ]
-
- DESCRIPTION
- Grep searches the files listed in the arguments (or stan-
- dard input if no files are given) for all lines that con-
- tain a match for the given expr. If any lines match, they
- are printed.
-
- Also, if any matches were found, 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 grep as a condition for, for example, the
- if statement.
-
- When invoked as egrep the syntax of the expr is slightly
- different; See below.
-
- REGULAR EXPRESSIONS
- (grep) (egrep)(explanation)
-
- c ca single (non-meta) character matches
- itself.
-
- . .matches any single character except new-
- line.
-
- \? ?postfix operator; preceeding item is
- optional.
-
- * *postfix operator; preceeding item 0 or
- more times.
-
- \+ +postfix operator; preceeding item 1 or
- more times.
-
- \| |infix operator; matches either argument.
-
- ^ ^matches the empty string at the beginning
- of a line.
-
- $ $matches the empty string at the end of a
- line.
-
- \< \<matches the empty string at the beginning
- of a word.
-
- \> \>matches the empty string at the end of a
- word.
-
-
-
-
- GNU Project 1988 December 13 1
-
-
-
-
-
- GREP(1) GREP(1)
-
-
- [chars] [chars]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
- first-last; for example, \W
- (below) is equivalent to the
- class [^A-Za-z0-9]
-
- \( \) ( )parentheses are used to override opera-
- tor precedence.
-
- \digit \digit\n matches a repeat of the text
- matched earlier in the regexp by
- the subexpression inside the nth
- opening parenthesis.
-
- \ \any special character may be preceded by a
- backslash to match it literally.
-
- (the following are for compatibility with GNU Emacs)
-
- \b \bmatches the empty string at the edge of a
- word.
-
- \B \Bmatches the empty string if not at the
- edge of a word.
-
- \w \wmatches word-constituent characters (let-
- ters & digits).
-
- \W \Wmatches characters that are not word-
- constituent.
-
- 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 imple-
- ments) the exact grammar understood by the parser.
-
- OPTIONS
- -A num print <num> lines of context after every matching
- line
-
- -B num print num lines of context before every matching
- line
-
- -C print 2 lines of context on each side of every
- match
-
- -num print num lines of context on each side of every
- match
-
- -V print the version number on the diagnostic output
-
-
-
- GNU Project 1988 December 13 2
-
-
-
-
-
- GREP(1) GREP(1)
-
-
- -b print every match preceded by its byte offset
-
- -c print a total count of matching lines only
-
- -e expr
- search for expr; useful if expr begins with -
-
- -f file
- search for the expression contained in file
-
- -h don't display filenames on matches
-
- -i ignore case difference when comparing strings
-
- -l list files containing matches only
-
- -n print each match preceded by its line number
-
- -s run silently producing no output except error mes-
- sages
-
- -v print only lines that contain no matches for the
- <expr>
-
- -w print only lines where the match is a complete word
-
- -x print only lines where the match is a whole line
-
- SEE ALSO
- emacs(1), ed(1), sh(1), GNU Emacs Manual
-
- INCOMPATIBILITIES
- The following incompatibilities with UNIX grep exist:
-
- The context-dependent meaning of * is not quite the
- same (grep only).
-
- -b prints a byte offset instead of a block offset.
-
- The {m,n} construct of System V grep is not imple-
- mented.
-
-
- BUGS
- GNU e?grep has been thoroughly debugged and tested by sev-
- eral 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.
-
- There is also a newsgroup, gnu.utils.bug, for reporting
- FSF utility programs' bugs and fixes; but before reporting
-
-
-
- GNU Project 1988 December 13 3
-
-
-
-
-
- GREP(1) GREP(1)
-
-
- 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 every bug report that you send in.
- Please do not send anything but bug reports to this news-
- group.
-
-
- AVAILABILITY
- GNU grep is free; anyone may redistribute copies of grep
- to anyone under the terms stated in the GNU General Public
- License, a copy of which may be found in each copy of GNU
- Emacs. See also the comment at the beginning of the
- source code file grep.c.
-
- Copies of GNU 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 per-
- mitted. In fact, the primary purpose of the General Pub-
- lic License is to prohibit anyone from attaching any other
- restrictions to redistribution of any of the Free Software
- Foundation programs.
-
- AUTHORS
- Mike Haertel wrote the deterministic regexp code and the
- bulk of the program.
-
- 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.
-
- Arthur David Olson contributed code that finds fixed
- strings for the aforementioned BMG search for a large
- class of regexps.
-
- Richard Stallman wrote the backtracking regexp matcher
- that is used for \digit backreferences, as well as the
- getopt that is provided for 4.2BSD sites. The backtrack-
- ing matcher was originally written for GNU Emacs.
-
- 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.)
-
- Scott Anderson and Henry Spencer designed the regression
- tests used in the "regress" script.
-
- Paul Placeway wrote the original version of this manual
- page.
-
-
-
-
-
- GNU Project 1988 December 13 4
-
-
-