Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ grep(1) — Duplix 4.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ex(1)

sed(1)

sh(1)

GREP(1)  —  Unix Programmer’s Manual

NAME

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

SYNOPSIS

grep [ options ] expression [ files ]

egrep [ options ] [ expression ] [ files ]

fgrep [ options ] [ strings ] [ file ]

DESCRIPTION

Commands of the grep family search the input files (standard input default) for lines matching a pattern.  Normally, each line found is copied to the standard output.  Grep patterns are limited regular expressions in the style of ex(1); it uses a compact nondeterministic algorithm.  Egrep patterns are full regular expressions; it uses a fast deterministic algorithm that sometimes needs exponential space.  Fgrep patterns are fixed strings; it is fast and compact. 

In all cases the filename is shown if there is more than one input file.  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) strings. 

Egrep accepts extended regular expressions.  In the following description ‘character’ excludes newline:

A \ followed by a single character other than newline matches that character. 

The character ^ matches the beginning of a line. 

The character $ matches the end of a line. 

A .  (period) 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 abbreviated as in ‘a−z0−9’. A ] may occur only as the first character of the string. A literal − must be placed where it can’t be mistaken as a range indicator.

A regular expression followed by an ∗ (asterisk) matches a sequence of 0 or more matches of the regular expression.  A regular expression followed by a + (plus) matches a sequence of 1 or more matches of the regular expression.  A regular expression followed by a ? (question mark) matches a sequence of 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.

Ideally there should be only one grep, but there has not yet been developed a single algorithm that spans a wide enough range of space-time tradeoffs. 

OPTIONS

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

−c Only a count of matching lines is printed. 

−e expression
Same as a simple expression argument, but useful when the expression begins with a −. 

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

−i The case of letters is ignored in making comparisons — that is, upper and lower case are considered identical.  This applies to grep and fgrep only. 

−l The names of files with matching lines are listed (once) separated by newlines. 

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

−s Silent mode.  Nothing is printed (except error messages).  This is useful for checking the error status. 

−v All lines but those matching are printed. 

−w The expression is searched for as a word (as if surrounded by ‘\<’ and ‘\>’, see ex(1).)  (grep only)

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

SEE ALSO

ex(1), sed(1), sh(1)

DIAGNOSTICS

Exit status is 0 if any matches are found, 1 if no matches are found, or 2 for syntax errors or inaccessible files. 

BUGS

Grep, egrep, and fgrep truncate lines longer than 256 characters. 
 

4th Berkeley Distribution  —  November 23, 1987

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026