Previous: Exit Status, Up: Invoking

2.4 grep Programs

grep searches the named input files for lines containing a match to the given pattern. By default, grep prints the matching lines. A file named - stands for standard input. If no input is specified, grep searches the working directory . if given a command-line option specifying recursion; otherwise, grep searches standard input. There are four major variants of grep, controlled by the following options.

Interpret the pattern as a basic regular expression (BRE). This is the default.
Interpret the pattern as an extended regular expression (ERE). (-E is specified by POSIX.)
Interpret the pattern as a list of fixed strings, separated by newlines, any of which is to be matched. (-F is specified by POSIX.)
Interpret the pattern as a Perl regular expression. This is highly experimental and ‘grep -P’ may warn of unimplemented features.

In addition, two variant programs egrep and fgrep are available. egrep is the same as ‘grep -E’. fgrep is the same as ‘grep -F’. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.