32v 1m grep

From Computer History Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

GREP(1) UNIX Programmer's Manual GREP(1)


NAME

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

SYNOPSIS

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

DESCRIPTION

    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_d(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.
    -v   All lines but those matching are printed.
    -x   (Exact) only lines matched in their entirety are
         printed (_f_g_r_e_p only).
    -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 relative 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.
    -e _e_x_p_r_e_s_s_i_o_n
         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 -.
    -f _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 (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.

SEE ALSO

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

DIAGNOSTICS

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

BUGS

    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.
    Lines are limited to 256 characters; longer lines are trun-
    cated.