GREP(1) UNIX Programmer's Manual GREP(1) NNAAMMEE grep, egrep, fgrep - search a file for a pattern SSYYNNOOPPSSIISS ggrreepp [ option ] ... expression [ file ] ... eeggrreepp [ option ] ... [ expression ] [ file ] ... ffggrreepp [ option ] ... [ strings ] [ file ] DDEESSCCRRIIPPTTIIOONN Commands of the _g_r_e_p family search the input _f_i_l_e_s (standard input default) for lines matching a pattern. Normally, each line found is copied to the standard output. _G_r_e_p patterns are limited regular expressions in the style of _e_x(1); it uses a compact nondeterministic algorithm. _E_g_r_e_p patterns are full regular expressions; it uses a fast deterministic algorithm that sometimes needs exponential space. _F_g_r_e_p patterns are fixed strings; it is fast and compact. The following options are recognized. --vv All lines but those matching are printed. --xx (Exact) only lines matched in their entirety are printed (_f_g_r_e_p only). --cc Only a count of matching lines is printed. --ll The names of files with matching lines are listed (once) separated by newlines. --nn Each line is preceded by its relative line number in the file. --bb Each line is preceded by the block number on which it was found. This is sometimes useful in locating disk block numbers by context. --hh Never print filename headers with output lines. --oo Always print filename headers with output lines. --ii The case of letters is ignored in making comparisons - that is, upper and lower case are considered identical. --ss Silent mode. Nothing is printed (except error mes- sages). This is useful for checking the error status. --ww The expression is searched for as a word (as if sur- rounded by `\<' and `\>', see _e_x(1).) (_g_r_e_p only) --ee _e_x_p_r_e_s_s_i_o_n Printed 7/9/88 October 8, 1987 1 GREP(1) UNIX Programmer's Manual GREP(1) Same as a simple _e_x_p_r_e_s_s_i_o_n argument, but useful when the _e_x_p_r_e_s_s_i_o_n begins with a -. --ff _f_i_l_e The regular expression (_e_g_r_e_p) or string list (_f_g_r_e_p) is taken from the _f_i_l_e. In all cases the file name is shown if there is more than one input file. Care should be taken when using the charac- ters $ * [ ^ | ( ) and \ in the _e_x_p_r_e_s_s_i_o_n as they are also meaningful to the Shell. It is safest to enclose the entire _e_x_p_r_e_s_s_i_o_n argument in single quotes ' '. _F_g_r_e_p searches for lines that contain one of the (newline- separated) _s_t_r_i_n_g_s. _E_g_r_e_p accepts extended regular expressions. In the follow- ing 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. Printed 7/9/88 October 8, 1987 2 GREP(1) UNIX Programmer's Manual GREP(1) 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 _g_r_e_p, but we don't know a single algorithm that spans a wide enough range of space- time tradeoffs. SSEEEE AALLSSOO ex(1), sed(1), sh(1) DDIIAAGGNNOOSSTTIICCSS Exit status is 0 if any matches are found, 1 if none, 2 for syntax errors or inaccessible files. BBUUGGSS Lines are limited to 256 characters; longer lines are trun- cated. Printed 7/9/88 October 8, 1987 3