389 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			389 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$OpenBSD: grep.1,v 1.35 2007/05/31 19:20:10 jmc Exp $
 | |
| .\" Copyright (c) 1980, 1990, 1993
 | |
| .\"	The Regents of the University of California.  All rights reserved.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. Neither the name of the University nor the names of its contributors
 | |
| .\"    may be used to endorse or promote products derived from this software
 | |
| .\"    without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .\"	@(#)grep.1	8.3 (Berkeley) 4/18/94
 | |
| .\"
 | |
| .Dd $Mdocdate: May 31 2007 $
 | |
| .Dt GREP 1
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm grep , egrep , fgrep ,
 | |
| .Nm zgrep , zegrep , zfgrep
 | |
| .Nd file pattern searcher
 | |
| .Sh SYNOPSIS
 | |
| .Nm grep
 | |
| .Bk -words
 | |
| .Op Fl abcEFGHhIiLlnoPqRSsUVvwxZ
 | |
| .Op Fl A Ar num
 | |
| .Op Fl B Ar num
 | |
| .Op Fl C Ns Op Ar num
 | |
| .Op Fl e Ar pattern
 | |
| .Op Fl f Ar file
 | |
| .Op Fl -binary-files Ns = Ns Ar value
 | |
| .Op Fl -context Ns Op = Ns Ar num
 | |
| .Op Fl -line-buffered
 | |
| .Op Ar pattern
 | |
| .Op Ar
 | |
| .Ek
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Nm grep
 | |
| utility searches any given input files,
 | |
| selecting lines that match one or more patterns.
 | |
| By default, a pattern matches an input line if the regular expression
 | |
| (RE) in the pattern matches the input line
 | |
| without its trailing newline.
 | |
| An empty expression matches every line.
 | |
| Each input line that matches at least one of the patterns is written
 | |
| to the standard output.
 | |
| .Pp
 | |
| .Nm grep
 | |
| is used for simple patterns and
 | |
| basic regular expressions
 | |
| .Pq BREs ;
 | |
| .Nm egrep
 | |
| can handle extended regular expressions
 | |
| .Pq EREs .
 | |
| See
 | |
| .Xr re_format 7
 | |
| for more information on regular expressions.
 | |
| .Nm fgrep
 | |
| is quicker than both
 | |
| .Nm grep
 | |
| and
 | |
| .Nm egrep ,
 | |
| but can only handle fixed patterns
 | |
| (i.e. it does not interpret regular expressions).
 | |
| Patterns may consist of one or more lines,
 | |
| allowing any of the pattern lines to match a portion of the input.
 | |
| .Pp
 | |
| .Nm zgrep ,
 | |
| .Nm zegrep ,
 | |
| and
 | |
| .Nm zfgrep
 | |
| act like
 | |
| .Nm grep ,
 | |
| .Nm egrep ,
 | |
| and
 | |
| .Nm fgrep ,
 | |
| respectively, but accept input files compressed with the
 | |
| .Xr compress 1
 | |
| or
 | |
| .Xr gzip 1
 | |
| compression utilities.
 | |
| .Pp
 | |
| The following options are available:
 | |
| .Bl -tag -width indent
 | |
| .It Fl A Ar num
 | |
| Print
 | |
| .Ar num
 | |
| lines of trailing context after each match.
 | |
| See also the
 | |
| .Fl B
 | |
| and
 | |
| .Fl C
 | |
| options.
 | |
| .It Fl a
 | |
| Treat all files as ASCII text.
 | |
| Normally
 | |
| .Nm
 | |
| will simply print
 | |
| .Dq Binary file ... matches
 | |
| if files contain binary characters.
 | |
| Use of this option forces
 | |
| .Nm
 | |
| to output lines matching the specified pattern.
 | |
| .It Fl B Ar num
 | |
| Print
 | |
| .Ar num
 | |
| lines of leading context before each match.
 | |
| See also the
 | |
| .Fl A
 | |
| and
 | |
| .Fl C
 | |
| options.
 | |
| .It Fl b
 | |
| The offset in bytes of a matched pattern is
 | |
| displayed in front of the respective matched line.
 | |
| .It Fl C Ns Op Ar num
 | |
| Print
 | |
| .Ar num
 | |
| lines of leading and trailing context surrounding each match.
 | |
| The default is 2 and is equivalent to
 | |
| .Fl A
 | |
| .Ar 2
 | |
| .Fl B
 | |
| .Ar 2 .
 | |
| Note:
 | |
| no whitespace may be given between the option and its argument.
 | |
| .It Fl c
 | |
| Only a count of selected lines is written to standard output.
 | |
| .It Fl E
 | |
| Interpret
 | |
| .Ar pattern
 | |
| as an extended regular expression
 | |
| (i.e. force
 | |
| .Nm grep
 | |
| to behave as
 | |
| .Nm egrep ) .
 | |
| .It Fl e Ar pattern
 | |
| Specify a pattern used during the search of the input:
 | |
| an input line is selected if it matches any of the specified patterns.
 | |
| This option is most useful when multiple
 | |
| .Fl e
 | |
| options are used to specify multiple patterns,
 | |
| or when a pattern begins with a dash
 | |
| .Pq Sq - .
 | |
| .It Fl F
 | |
| Interpret
 | |
| .Ar pattern
 | |
| as a set of fixed strings
 | |
| (i.e. force
 | |
| .Nm grep
 | |
| to behave as
 | |
| .Nm fgrep ) .
 | |
| .It Fl f Ar file
 | |
| Read one or more newline separated patterns from
 | |
| .Ar file .
 | |
| Empty pattern lines match every input line.
 | |
| Newlines are not considered part of a pattern.
 | |
| If
 | |
| .Ar file
 | |
| is empty, nothing is matched.
 | |
| .It Fl G
 | |
| Interpret
 | |
| .Ar pattern
 | |
| as a basic regular expression
 | |
| (i.e. force
 | |
| .Nm grep
 | |
| to behave as traditional
 | |
| .Nm grep ) .
 | |
| .It Fl H
 | |
| If
 | |
| .Fl R
 | |
| is specified, follow symbolic links only if they were explicitly listed
 | |
| on the command line.
 | |
| The default is not to follow symbolic links.
 | |
| .It Fl h
 | |
| Never print filename headers
 | |
| .Pq i.e. filenames
 | |
| with output lines.
 | |
| .It Fl I
 | |
| Ignore binary files.
 | |
| .It Fl i
 | |
| Perform case insensitive matching.
 | |
| By default,
 | |
| .Nm grep
 | |
| is case sensitive.
 | |
| .It Fl L
 | |
| Only the names of files not containing selected lines are written to
 | |
| standard output.
 | |
| Pathnames are listed once per file searched.
 | |
| If the standard input is searched, the string
 | |
| .Dq (standard input)
 | |
| is written.
 | |
| .It Fl l
 | |
| Only the names of files containing selected lines are written to
 | |
| standard output.
 | |
| .Nm grep
 | |
| will only search a file until a match has been found,
 | |
| making searches potentially less expensive.
 | |
| Pathnames are listed once per file searched.
 | |
| If the standard input is searched, the string
 | |
| .Dq (standard input)
 | |
| is written.
 | |
| .It Fl n
 | |
| Each output line is preceded by its relative line number in the file,
 | |
| starting at line 1.
 | |
| The line number counter is reset for each file processed.
 | |
| This option is ignored if
 | |
| .Fl c ,
 | |
| .Fl L ,
 | |
| .Fl l ,
 | |
| or
 | |
| .Fl q
 | |
| is
 | |
| specified.
 | |
| .It Fl o
 | |
| Always print filename headers with output lines.
 | |
| .It Fl P
 | |
| If
 | |
| .Fl R
 | |
| is specified, no symbolic links are followed.
 | |
| This is the default.
 | |
| .It Fl q
 | |
| Quiet mode:
 | |
| suppress normal output.
 | |
| .Nm grep
 | |
| will only search a file until a match has been found,
 | |
| making searches potentially less expensive.
 | |
| .It Fl R
 | |
| Recursively search subdirectories listed.
 | |
| .It Fl S
 | |
| If
 | |
| .Fl R
 | |
| is specified, all symbolic links are followed.
 | |
| The default is not to follow symbolic links.
 | |
| .It Fl s
 | |
| Silent mode.
 | |
| Nonexistent and unreadable files are ignored
 | |
| (i.e. their error messages are suppressed).
 | |
| .It Fl U
 | |
| Search binary files, but do not attempt to print them.
 | |
| .It Fl V
 | |
| Display version information.
 | |
| All other options are ignored.
 | |
| .It Fl v
 | |
| Selected lines are those
 | |
| .Em not
 | |
| matching any of the specified patterns.
 | |
| .It Fl w
 | |
| The expression is searched for as a word (as if surrounded by
 | |
| .Sq [[:<:]]
 | |
| and
 | |
| .Sq [[:>:]] ;
 | |
| see
 | |
| .Xr re_format 7 ) .
 | |
| .It Fl x
 | |
| Only input lines selected against an entire fixed string or regular
 | |
| expression are considered to be matching lines.
 | |
| .It Fl Z
 | |
| Force
 | |
| .Nm grep
 | |
| to behave as
 | |
| .Nm zgrep .
 | |
| .It Fl Fl binary-files Ns = Ns Ar value
 | |
| Controls searching and printing of binary files.
 | |
| Options are
 | |
| .Ar binary ,
 | |
| the default: search binary files but do not print them;
 | |
| .Ar without-match :
 | |
| do not search binary files;
 | |
| and
 | |
| .Ar text :
 | |
| treat all files as text.
 | |
| .Sm off
 | |
| .It Fl Fl context Op = Ar num
 | |
| .Sm on
 | |
| Print
 | |
| .Ar num
 | |
| lines of leading and trailing context.
 | |
| The default is 2.
 | |
| .It Fl Fl line-buffered
 | |
| Force output to be line buffered.
 | |
| By default, output is line buffered when standard output is a terminal
 | |
| and block buffered otherwise.
 | |
| .Pp
 | |
| .El
 | |
| If no file arguments are specified, the standard input is used.
 | |
| .Sh RETURN VALUES
 | |
| The
 | |
| .Nm grep
 | |
| utility exits with one of the following values:
 | |
| .Pp
 | |
| .Bl -tag -width flag -compact
 | |
| .It Li 0
 | |
| One or more lines were selected.
 | |
| .It Li 1
 | |
| No lines were selected.
 | |
| .It Li \*(Gt1
 | |
| An error occurred.
 | |
| .El
 | |
| .Sh EXAMPLES
 | |
| To find all occurrences of the word
 | |
| .Sq patricia
 | |
| in a file:
 | |
| .Pp
 | |
| .Dl $ grep 'patricia' myfile
 | |
| .Pp
 | |
| To find all occurrences of the pattern
 | |
| .Ql .Pp
 | |
| at the beginning of a line:
 | |
| .Pp
 | |
| .Dl $ grep '^\e.Pp' myfile
 | |
| .Pp
 | |
| The apostrophes ensure the entire expression is evaluated by
 | |
| .Nm grep
 | |
| instead of by the user's shell.
 | |
| The caret
 | |
| .Ql ^
 | |
| matches the null string at the beginning of a line,
 | |
| and the
 | |
| .Ql \e
 | |
| escapes the
 | |
| .Ql \&. ,
 | |
| which would otherwise match any character.
 | |
| .Pp
 | |
| To find all lines in a file which do not contain the words
 | |
| .Sq foo
 | |
| or
 | |
| .Sq bar :
 | |
| .Pp
 | |
| .Dl $ grep -v -e 'foo' -e 'bar' myfile
 | |
| .Pp
 | |
| A simple example of an extended regular expression:
 | |
| .Pp
 | |
| .Dl $ egrep '19|20|25' calendar
 | |
| .Pp
 | |
| Peruses the file
 | |
| .Sq calendar
 | |
| looking for either 19, 20, or 25.
 | |
| .Sh SEE ALSO
 | |
| .Xr ed 1 ,
 | |
| .Xr ex 1 ,
 | |
| .Xr gzip 1 ,
 | |
| .Xr sed 1 ,
 | |
| .Xr re_format 7
 | |
| .Sh STANDARDS
 | |
| The
 | |
| .Nm
 | |
| utility is compliant with the
 | |
| .St -p1003.1-2008
 | |
| specification.
 | |
| .Pp
 | |
| The flags
 | |
| .Op Fl AaBbCGHhILoPRSUVwZ
 | |
| are extensions to that specification, and the behaviour of the
 | |
| .Fl f
 | |
| flag when used with an empty pattern file is left undefined.
 | |
| .Pp
 | |
| All long options are provided for compatibility with
 | |
| GNU versions of this utility.
 | |
| .Pp
 | |
| Historic versions of the
 | |
| .Nm grep
 | |
| utility also supported the flags
 | |
| .Op Fl ruy .
 | |
| This implementation supports those options;
 | |
| however, their use is strongly discouraged.
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Nm grep
 | |
| command first appeared in
 | |
| .At v6 .
 | 
