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

FreeBSD Manual Pages


home | help
GREP(1)			    General Commands Manual		       GREP(1)

       grep, egrep, fgrep - search a file for a	pattern

       grep [ option ] ...  expression [ file ]	...

       egrep [ option ]	...  [ expression ] [ file ] ...

       fgrep [ option ]	...  [ strings ] [ file	]

       Commands	 of the	grep family search the input files (standard input de-
       fault) for lines	matching a pattern.   Normally,	 each  line  found  is
       copied  to  the	standard  output; unless the -h	flag is	used, the file
       name is shown if	there is more than one input file.

       Grep patterns are limited regular expressions in	the style of ed(1); it
       uses  a	compact	 nondeterministic  algorithm.  Egrep patterns are full
       regular expressions; it uses a fast deterministic algorithm that	 some-
       times needs exponential space.  Fgrep patterns are fixed	strings; it is
       fast and	compact.

       The following options are recognized.

       -v     All lines	but those matching are printed.

       -c     Only a count of matching lines is	printed.

       -l     The names	of files with matching lines are listed	 (once)	 sepa-
	      rated by newlines.

       -n     Each line	is preceded by its line	number in the file.

       -b     Each line	is preceded by the block number	on which it was	found.
	      This is sometimes	useful in locating disk	block numbers by  con-

       -s     No output	is produced, only status.

       -h     Do not print filename headers with output	lines.

       -y     Lower  case  letters  in	the pattern will also match upper case
	      letters in the input (grep only).

       -e expression
	      Same as a	simple expression argument, but	useful	when  the  ex-
	      pression begins with a -.

       -f file
	      The  regular  expression (egrep) or string list (fgrep) is taken
	      from the file.

       -x     (Exact) only lines matched in their entirety are printed	(fgrep

       Care  should be taken when using	the characters $ * [ ^ | ? ' " ( ) and
       \ in the	expression as they are also meaningful to the  Shell.	It  is
       safest to enclose the entire expression argument	in single quotes ' '.

       Fgrep  searches	for  lines that	contain	one of the (newline-separated)

       Egrep accepts extended regular expressions.  In the following  descrip-
       tion `character'	excludes newline:

	      A	\ followed by a	single character matches that character.

	      The character ^ ($) matches the beginning	(end) of a line.

	      A	.  matches any character.

	      A	 single	 character  not	otherwise endowed with special meaning
	      matches that character.

	      A	string enclosed	in brackets [] matches	any  single  character
	      from  the	string.	 Ranges	of ASCII character codes may be	abbre-
	      viated as	in `a-z0-9'.  A	] may occur only as the	first  charac-
	      ter of the string.  A literal - must be placed where it can't be
	      mistaken as a range indicator.

	      A	regular	expression followed by * (+, ?)	matches	a sequence  of
	      0	or more	(1 or more, 0 or 1) matches of the regular expression.

	      Two  regular expressions concatenated match a match of the first
	      followed by a match of the second.

	      Two regular expressions separated	by | or	newline	match either a
	      match for	the first or a match for the second.

	      A	regular	expression enclosed in parentheses matches a match for
	      the regular expression.

       The order of precedence of operators at the same	parenthesis  level  is
       [] then *+? then	concatenation then | and newline.

       ed(1), sed(1), sh(1)

       Exit  status is 0 if any	matches	are found, 1 if	none, 2	for syntax er-
       rors or inaccessible files.

       Ideally there should be only one	grep, but we don't know	a single algo-
       rithm that spans	a wide enough range of space-time tradeoffs.

       Lines are limited to 256	characters; longer lines are truncated.



Want to link to this manual page? Use this URL:

home | help