GNU grep is based on a fast lazy-state deterministic matcher (about twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper search for a fixed string that eliminates impossible text from being considered by the full regexp matcher without necessarily having to look at every character. The result is typically many times faster than Unix grep or egrep.
| Licenses | GPL |
|---|---|
| Operating Systems | POSIX BSD GNU/Hurd HP-UX IRIX Linux Other SCO Solaris |
Recent releases


No changes have been submitted for this release.


Changes: This release adds --label, --only-matching, --devices, --line-buffered, --include, --exclude, --color, and --max-count options, adds a PCRE matcher, fixes some bugs, and includes some translation updates.


Changes: This release includes more checking in configure so as to not default a libc's value.


Changes: If the final byte of an input file is not a newline, grep now silently supplies one, the new option --binary-files=TYPE makes grep assume that a binary input file is of type TYPE, and a new option (-I) has been added, which is equivalent to --binary-files='without-match'.


Changes: egrep is now equivalent to `grep -E' as required by POSIX, the lower bound of an interval is no longer optional, the --revert-match option has been renamed to --invert-match and --fixed-regexp has been renamed to --fixed-string, the new options -H (or --with-filename), --mmap, -z (or --null-data; it causes `grep' to treat a zero byte (the ASCII NUL character) as a line terminator in input data and to treat newlines as ordinary data), and -Z (or --null; it causes `grep' to output a zero byte instead of the normal separator after a file name), and the environment variable GREP_OPTIONS (specifies default options) have been added, etc.