Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
grep(1)								       grep(1)

NAME
       grep - search a file for	a pattern

SYNOPSIS
       /usr/bin/grep [-bchilnsvw] limited-regular-expression [filename...]

       /usr/xpg4/bin/grep  [-E	|  -F]	 [-c  |	 -l | -q]  [-bhinsvwx] -e pat-
       tern_list...  [-f pattern_file]... [file...]

       /usr/xpg4/bin/grep [-E |	-F]  [-c |  -l	|  -q]	 [-bhinsvwx]  [-e pat-
       tern_list...] -f	pattern_file...	[file...]

       /usr/xpg4/bin/grep  [-E	|  -F]	 [-c  |	 -l | -q]  [-bhinsvwx] pattern
       [file...]

       The grep	utility	searches text files for	a pattern and prints all lines
       that contain that pattern.  It uses a compact  non-deterministic	 algo-
       rithm.

       Be  careful using the characters	$, *, [, ^, |, (, ), and \ in the pat-
       tern_list because they are also meaningful to the shell.	It  is	safest
       to enclose the entire pattern_list in single quotes '...'.

       If  no files are	specified, grep	assumes	standard input.	Normally, each
       line found is copied to standard	output.	The file name is  printed  be-
       fore each line found if there is	more than one input file.

   /usr/bin/grep
       The  /usr/bin/grep  utility uses	limited	regular	expressions like those
       described on the	regexp(5) manual page to match the patterns.

   /usr/xpg4/bin/grep
       The options -E and -F affect the	way /usr/xpg4/bin/grep interprets pat-
       tern_list. If  -E  is  specified,  /usr/xpg4/bin/grep  interprets  pat-
       tern_list as a full regular expression (see -E for description).	 If -F
       is  specified,  grep interprets pattern_list as a fixed string. If nei-
       ther are	specified, grep	interprets pattern_list	as a basic regular ex-
       pression	as described on	regex(5) manual	page.

       The  following  options	are  supported	for  both  /usr/bin/grep   and
       /usr/xpg4/bin/grep:

       -b	Precedes  each line by the block number	on which it was	found.
		This can be useful in locating block numbers by	context	(first
		block is 0).

       -c	Prints only a count of the lines that contain the pattern.

       -h	Prevents the name of the file  containing  the	matching  line
		from  being appended to	that line.  Used when searching	multi-
		ple files.

       -i	Ignores	upper/lower case distinction during comparisons.

       -l	Prints only the	names of files with matching lines,  separated
		by  NEWLINE  characters.   Does	 not repeat the	names of files
		when the pattern is found more than once.

       -n	Precedes each line by its line number in the file (first  line
		is 1).

       -s	Suppresses  error  messages  about  nonexistent	 or unreadable
		files.

       -v	Prints all lines except	those that contain the pattern.

       -w	Searches for the expression as a word as if surrounded	by  \<
		and \>.

   /usr/xpg4/bin/grep
       The following options are supported for /usr/xpg4/bin/grep only:

       -e pattern_list Specifies  one  or  more	patterns to be used during the
		       search for input. Patterns in pattern_list must be sep-
		       arated by a NEWLINE character. A	null  pattern  can  be
		       specified  by  two  adjacent newline characters in pat-
		       tern_list. Unless the -E	or -F option  is  also	speci-
		       fied,  each  pattern  is	treated	as a basic regular ex-
		       pression.  Multiple -e and -f options are  accepted  by
		       grep.  All  of  the  specified  patterns	 are used when
		       matching	lines, but the order of	evaluation is unspeci-
		       fied.

       -E	       Matches using full  regular  expressions.  Treats  each
		       pattern	specified as a full regular expression.	If any
		       entire full regular expression pattern matches an input
		       line, the line is matched. A null full regular  expres-
		       sion  matches  every line.  Each	pattern	is interpreted
		       as a  full  regular  expression	as  described  on  the
		       regex(5)	manual page, except for	\( and \), and includ-
		       ing:

			   1.  A  full	regular	 expression followed by	+ that
			       matches one or more  occurrences	 of  the  full
			       regular expression.

			   2.  A  full	regular	 expression followed by	? that
			       matches 0 or 1 occurrences of the full  regular
			       expression.

			   3.  Full regular expressions	separated by | or by a
			       new-line	that match strings that	are matched by
			       any of the expressions.

			   4.  A  full	regular	expression that	is enclosed in
			       parentheses () for grouping.

		       The order of precedence of operators is [],  then  *?+,
		       then concatenation, then	| and new-line.

       -f pattern_file Reads  one  or more patterns from the file named	by the
		       path name pattern_file. Patterns	 in  pattern_file  are
		       terminated  by a	NEWLINE	character.  A null pattern can
		       be specified by an empty	line in	 pattern_file.	Unless
		       the  -E or -F option is also specified, each pattern is
		       treated as a basic regular expression.

       -F	       Matches using fixed strings. Treats each	pattern	speci-
		       fied as a string	instead	of a regular expression. If an
		       input line contains any of the patterns as a contiguous
		       sequence	of bytes, the line is matched. A  null	string
		       matches every line.  See	fgrep(1) for more information.

       -q	       Quiet.  Does not	write anything to the standard output,
		       regardless of matching lines. Exits with	zero status if
		       an input	line is	selected.

       -x	       Considers only input lines that use all	characters  in
		       the line	to match an entire fixed string	or regular ex-
		       pression	to be matching lines.

       The following operands are supported:

       file	       A  path name of a file to be searched for the patterns.
		       If no file operands are specified, the  standard	 input
		       is used.

   /usr/bin/grep
       pattern	       Specifies  a  pattern  to be used during	the search for
		       input.

   /usr/xpg4/bin/grep
       pattern	       Specifies one or	more patterns to be  used  during  the
		       search for input. This operand is treated as if it were
		       specified as -e pattern_list.

       The  -e	pattern_list  option  has  the same effect as the pattern_list
       operand,	but is useful when pattern_list	begins with the	hyphen	delim-
       iter.  It is also useful	when it	is more	convenient to provide multiple
       patterns	as separate arguments.

       Multiple	-e and -f options are accepted and grep	uses all of  the  pat-
       terns  it is given while	matching input text lines. Notice that the or-
       der of evaluation is not	specified. If an implementation	finds  a  null
       string  as a pattern, it	is allowed to use that pattern first, matching
       every line, and effectively ignore any other patterns.

       The -q option provides a	means of easily	determining whether or	not  a
       pattern	(or string) exists in a	group of files.	When searching several
       files, it provides a performance	improvement (because it	 can  quit  as
       soon as it finds	the first match) and requires less care	by the user in
       choosing	the set	of files to supply as arguments	(because it exits zero
       if  it  finds  a	match even if grep detected an access or read error on
       earlier file operands).

   Large File Behavior
       See largefile(5)	for the	description of the behavior of grep  when  en-
       countering files	greater	than or	equal to 2 Gbyte ( 2**31 bytes).

       Example 1: Finding All Uses of a	Word

       To find all uses	of the word "Posix" (in	any case) in the file text.mm,
       and write with line numbers:

       example%	/usr/bin/grep -i -n posix text.mm

       Example 2: Finding All Empty Lines

       To find all empty lines in the standard input:

       example%	/usr/bin/grep ^$

       or

       example%	/usr/bin/grep -v .

       Example 3: Finding Lines	Containing Strings

       All of the following commands print all lines containing	strings	abc or
       def or both:

       example%	/usr/xpg4/bin/grep 'abc
       def'
       example%	/usr/xpg4/bin/grep -e 'abc
       def'
       example%	/usr/xpg4/bin/grep -e 'abc' -e 'def'
       example%	/usr/xpg4/bin/grep -E 'abc|def'
       example%	/usr/xpg4/bin/grep -E -e 'abc|def'
       example%	/usr/xpg4/bin/grep -E -e 'abc' -e 'def'
       example%	/usr/xpg4/bin/grep -E 'abc
       def'
       example%	/usr/xpg4/bin/grep -E -e 'abc
       def'
       example%	/usr/xpg4/bin/grep -F -e 'abc' -e 'def'
       example%	/usr/xpg4/bin/grep -F 'abc
       def'
       example%	/usr/xpg4/bin/grep -F -e 'abc
       def'

       Example 4: Finding Lines	with Matching Strings

       Both  of	the following commands print all lines matching	exactly	abc or
       def:

       example%	/usr/xpg4/bin/grep -E '^abc$ ^def$'
       example%	/usr/xpg4/bin/grep -F -x 'abc def'

       See environ(5) for descriptions of the following	environment  variables
       that  affect the	execution of grep: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
       LC_MESSAGES, and	NLSPATH.

       The following exit values are returned:

       0	One or more matches were found.

       1	No matches were	found.

       2	Syntax errors or inaccessible  files  (even  if	 matches  were
		found).

       See attributes(5) for descriptions of the following attributes:

   /usr/bin/grep
       +------------------------------+-----------------------------+
       |       ATTRIBUTE TYPE	      |	     ATTRIBUTE VALUE	    |
       +------------------------------+-----------------------------+
       | Availability		      |SUNWcsu			    |
       +------------------------------+-----------------------------+
       | CSI			      |Not Enabled		    |
       +------------------------------+-----------------------------+

   /usr/xpg4/bin/grep
       +------------------------------+-----------------------------+
       |       ATTRIBUTE TYPE	      |	     ATTRIBUTE VALUE	    |
       +------------------------------+-----------------------------+
       | Availability		      |SUNWxcu4			    |
       +------------------------------+-----------------------------+
       | CSI			      |Enabled			    |
       +------------------------------+-----------------------------+
       | Interface Stability	      |Standard			    |
       +------------------------------+-----------------------------+

       egrep(1),  fgrep(1),  sed(1),  sh(1), attributes(5), environ(5),	large-
       file(5),	regex(5), regexp(5), standards(5)

   /usr/bin/grep
       Lines are limited only by the size of the available virtual memory.  If
       there  is a line	with embedded nulls, grep only matches up to the first
       null. If	the line matches, the entire line is printed.

   /usr/xpg4/bin/grep
       The results are unspecified if input files contain  lines  longer  than
       LINE_MAX	 bytes or contain binary data. LINE_MAX	is defined in /usr/in-
       clude/limits.h.

				  23 May 2005			       grep(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=grep&sektion=1&manpath=SunOS+5.10>

home | help