Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ grep(1) — Ultrix-11 3.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ed(1)

sed(1)

sh(1)

grep(1)

NAME

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

SYNTAX

grep [ option... ] expression [ file... ]
egrep [ option... ] [ expression ] [ file... ]
fgrep [ option... ] [ strings ] [ file ]

DESCRIPTION

Commands of the grep family search each input file (standard input default) for lines matching a limited regular expression.  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. 

The grep limited regular expressions are in the style of ed(1).  It uses a compact nondeterministic algorithm.  The egrep patterns are full regular expressions.  It uses a fast deterministic algorithm that sometimes needs exponential space.  The fgrep patterns are fixed strings, and, thus it is fast and compact. 

OPTIONS

−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) separated 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 context. 

−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 expression begins with a − (dash). 

−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 only). 

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 ´ ´. 

The fgrep command searches for lines that contain one of the (newline-separated) strings. 

The egrep command accepts extended regular expressions.  In the following description ’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 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 * (+, ?) 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.

RESTRICTIONS

Ideally there should be only one grep, but we do not know a single algorithm that spans a wide enough range of space-time tradeoffs. 

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

DIAGNOSTICS

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

SEE ALSO

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

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