1 .\" $NetBSD: grep.1,v 1.2 2011/02/16 01:31:33 joerg Exp $
3 .\" $OpenBSD: grep.1,v 1.38 2010/04/05 06:30:59 jmc Exp $
4 .\" Copyright (c) 1980, 1990, 1993
5 .\" The Regents of the University of California. All rights reserved.
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. Neither the name of the University nor the names of its contributors
16 .\" may be used to endorse or promote products derived from this software
17 .\" without specific prior written permission.
19 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .\" @(#)grep.1 8.3 (Berkeley) 4/18/94
41 .Nd file pattern searcher
45 .Op Fl abcdDEFGHhIiLlmnOopqRSsUVvwxz
51 .Op Fl Fl binary-files= Ns Ar value
52 .Op Fl Fl color Ns Op Cm = Ns Ar when
53 .Op Fl Fl colour Ns Op Cm = Ns Ar when
54 .Op Fl Fl context Ns Op Cm = Ns Ar num
56 .Op Fl Fl line-buffered
64 utility searches any given input files,
65 selecting lines that match one or more patterns.
66 By default, a pattern matches an input line if the regular expression
67 (RE) in the pattern matches the input line
68 without its trailing newline.
69 An empty expression matches every line.
70 Each input line that matches at least one of the patterns is written
71 to the standard output.
74 is used for simple patterns and
75 basic regular expressions
78 can handle extended regular expressions
82 for more information on regular expressions.
88 but can only handle fixed patterns
89 (i.e., it does not interpret regular expressions).
90 Patterns may consist of one or more lines,
91 allowing any of the pattern lines to match a portion of the input.
93 The following options are available:
94 .Bl -tag -width indent
95 .It Fl A Ar num , Fl Fl after-context= Ns Ar num
98 lines of trailing context after each match.
104 .It Fl a , Fl Fl text
105 Treat all files as ASCII text.
109 .Dq Binary file ... matches
110 if files contain binary characters.
111 Use of this option forces
113 to output lines matching the specified pattern.
114 .It Fl B Ar num , Fl Fl before-context= Ns Ar num
117 lines of leading context before each match.
123 .It Fl b , Fl Fl byte-offset
124 The offset in bytes of a matched pattern is
125 displayed in front of the respective matched line.
126 .It Fl C Ns Oo Ar num Oc , Fl Fl context Ns Oo = Ns Ar num Oc
129 lines of leading and trailing context surrounding each match.
135 .Dq Fl A Ar 2 Fl B Ar 2 .
137 no whitespace may be given between the option and its argument.
138 .It Fl c , Fl Fl count
139 Only a count of selected lines is written to standard output.
140 .It Fl Fl colour= Ns Oo Ar when Oc , Fl Fl color= Ns Oo Ar when Oc
141 Mark up the matching text with the expression stored in the
143 environment variable.
144 The possible values of
151 .It Fl D Ar action , Fl Fl devices= Ns Ar action
154 for devices, FIFOs and sockets.
159 which means, that they are read as if they were normal files.
164 devices are silently skipped.
165 .It Fl d Ar action , Fl Fl directories= Ns Ar action
171 by default, which means that the directories
172 are read in the same manner as normal files.
173 Other possible values are
175 to silently ignore the directories, and
177 to read them recursively, which has the same effect as the
182 .It Fl E , Fl Fl extended-regexp
185 as an extended regular expression
190 .It Fl e Ar pattern , Fl Fl regexp= Ns Ar pattern
193 used during the search of the input:
194 an input line is selected if it matches any of the specified patterns.
195 This option is most useful when multiple
197 options are used to specify multiple patterns,
202 .It Fl Fl exclude Ar pattern
203 If specified, it excludes files matching the given
211 patterns are processed in the order given.
212 If a name patches multiple patterns, the latest matching rule wins.
215 pattern is specified, all files are searched that are
217 Patterns are matched to the full path specified,
218 not only to the filename component.
219 .It Fl Fl exclude-dir Ar pattern
222 is specified, it excludes directories matching the
230 patterns are processed in the order given.
231 If a name patches multiple patterns, the latest matching rule wins.
234 pattern is specified, all directories are searched that are
236 .It Fl F , Fl Fl fixed-strings
239 as a set of fixed strings
244 .It Fl f Ar file , Fl Fl file= Ns Ar file
245 Read one or more newline separated patterns from
247 Empty pattern lines match every input line.
248 Newlines are not considered part of a pattern.
251 is empty, nothing is matched.
252 .It Fl G , Fl Fl basic-regexp
255 as a basic regular expression
258 to behave as traditional
261 Always print filename headers with output lines.
262 .It Fl h , Fl Fl no-filename
263 Never print filename headers
267 Print a brief help message.
270 This option is equivalent to the
271 .Dq Fl Fl binary-file= Ns Cm without-match
273 .It Fl i , Fl Fl ignore-case
274 Perform case insensitive matching.
278 .It Fl Fl include Ar pattern
279 If specified, only files matching the given filename
286 patterns are processed in the order given.
287 If a name patches multiple patterns, the latest matching rule wins.
288 Patterns are matched to the full path specified,
289 not only to the filename component.
290 .It Fl Fl include-dir Ar pattern
293 is specified, only directories matching the given filename
300 patterns are processed in the order given.
301 If a name patches multiple patterns, the latest matching rule wins.
302 .It Fl L , Fl Fl files-without-match
303 Only the names of files not containing selected lines are written to
305 Pathnames are listed once per file searched.
306 If the standard input is searched, the string
311 .It Fl l , Fl Fl files-with-matches
312 Only the names of files containing selected lines are written to
315 will only search a file until a match has been found,
316 making searches potentially less expensive.
317 Pathnames are listed once per file searched.
318 If the standard input is searched, the string
324 Label to use in place of
326 for a file name where a file name would normally be printed.
327 This option applies to
337 to read input, which can result in better performance under some
338 circumstances but can cause undefined behaviour.
339 .It Fl m Ar num , Fl Fl max-count= Ns Ar num
340 Stop reading the file after
343 .It Fl n , Fl Fl line-number
344 Each output line is preceded by its relative line number in the file,
346 The line number counter is reset for each file processed.
347 This option is ignored if
356 Prints a zero-byte after the file name.
360 is specified, follow symbolic links only if they were explicitly listed
362 The default is not to follow symbolic links.
363 .It Fl o , Fl Fl only-matching
364 Prints only the matching part of the lines.
368 is specified, no symbolic links are followed.
370 .It Fl q , Fl Fl quiet , Fl Fl silent
372 suppress normal output.
374 will only search a file until a match has been found,
375 making searches potentially less expensive.
376 .It Fl R , Fl r , Fl Fl recursive
377 Recursively search subdirectories listed.
385 is specified, all symbolic links are followed.
386 The default is not to follow symbolic links.
387 .It Fl s , Fl Fl no-messages
389 Nonexistent and unreadable files are ignored
390 (i.e., their error messages are suppressed).
391 .It Fl U , Fl Fl binary
392 Search binary files, but do not attempt to print them.
394 This option has no effect and is provided only for compatibility with GNU grep.
395 .It Fl V , Fl Fl version
396 Display version information and exit.
397 .It Fl v , Fl Fl invert-match
398 Selected lines are those
400 matching any of the specified patterns.
401 .It Fl w , Fl Fl word-regexp
402 The expression is searched for as a word (as if surrounded by
408 .It Fl x , Fl Fl line-regexp
409 Only input lines selected against an entire fixed string or regular
410 expression are considered to be matching lines.
415 .It Fl z , Fl Fl null-data
416 Treat input and output data as sequences of lines terminated by a
417 zero-byte instead of a newline.
418 .It Fl Fl binary-files= Ns Ar value
419 Controls searching and printing of binary files.
421 .Bl -tag -compact -width "binary (default)"
422 .It Cm binary No (default)
423 Search binary files but do not print them.
425 Do not search binary files.
427 Treat all files as text.
429 .It Fl Fl line-buffered
430 Force output to be line buffered.
431 By default, output is line buffered when standard output is a terminal
432 and block buffered otherwise.
435 If no file arguments are specified, the standard input is used.
438 may be used in place of a file name, anywhere that a file name is accepted, to
439 read from standard input.
446 utility exits with one of the following values:
448 .Bl -tag -width flag -compact
450 One or more lines were selected.
452 No lines were selected.
459 To find all occurrences of the word
463 .Dl $ grep 'patricia' myfile
465 To find all occurrences of the pattern
467 at the beginning of a line:
469 .Dl $ grep '^\e.Pp' myfile
471 The apostrophes ensure the entire expression is evaluated by
473 instead of by the user's shell.
476 matches the null string at the beginning of a line,
481 which would otherwise match any character.
483 To find all lines in a file which do not contain the words
488 .Dl $ grep -v -e 'foo' -e 'bar' myfile
490 A simple example of an extended regular expression:
492 .Dl $ egrep '19|20|25' calendar
496 looking for either 19, 20, or 25.
507 utility is compliant with the
512 .Op Fl AaBbCDdGHhILmoPRSUVw
513 are extensions to that specification, and the behaviour of the
515 flag when used with an empty pattern file is left undefined.
517 All long options are provided for compatibility with
518 GNU versions of this utility.
520 Historic versions of the
522 utility also supported the flags
524 This implementation supports those options;
525 however, their use is strongly discouraged.
529 command first appeared in