home *** CD-ROM | disk | FTP | other *** search
-
- grep, egrep - print lines matching a regular expression
-
- 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 If any lines
- match, they are printed. Also, if any matches were found, 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 as a condition for, for
- example, the statement. When invoked as the syntax of the is slightly
- different; See below.
-
- (grep) (egrep) (explanation)
-
- c c a single (non-meta) character matches itself.
-
- . . matches any single character except newline.
-
- \? ? 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.
-
- [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 \b matches the empty string at the edge of
- a word.
-
- \B \B matches the empty string if not at the
- edge of a word.
-
- \w \w matches word-constituent characters
- (letters & digits).
-
- \W \W matches characters that are not word-
- constituent. Operator precedence is (highest to lowest) ?,
- *, and +, concatenation, and finally |. All other con-
- structs are syntactically identical to normal characters.
- For the truly interested, the file dfa.c describes (and
- implements) the exact grammar understood by the parser.
- print <num> lines of context after every matching line print
- lines of context before every matching line print 2 lines of
- context on each side of every match print lines of context
- on each side of every match print the version number on the
- diagnostic output print every match preceded by its byte
- offset print a total count of matching lines only search for
- useful if begins with - search for the expression contained
- in don't display filenames on matches ignore case difference
- when comparing strings list files containing matches only
- print each match preceded by its line number run silently
- producing no output except error messages print only lines
- that contain no matches for the <expr> print only lines
- where the match is a complete word print only lines where
- the match is a whole line emacs(1), ed(1), sh(1), The fol-
- lowing incompatibilities with UNIX exist: The context-
- dependent meaning of * is not quite the same (grep only).
- prints a byte offset instead of a block offset. The {m,n}
- construct of System V grep is not implemented. GNU e?grep
- 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. 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 every bug report
- that you send in. Please do not send anything but bug
- reports to this newsgroup. GNU is free; anyone may redis-
- tribute copies of to anyone under the terms stated in the
- GNU General Public License, a copy of which may be found in
- each copy of See also the comment at the beginning of the
- source code file grep.c. Copies of GNU 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 distri-
- bution 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. Mike Haertel wrote the deter-
- ministic 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 backtracking 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.
-