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.
|Operating Systems||POSIX BSD GNU/Hurd HP-UX IRIX Linux Other SCO Solaris|
Release Notes: Performance was improved, though the performance of "grep -P" in UTF-8 locales was negatively impacted by some bug fixes. Many pattern handling errors and inconsistencies were fixed. "grep -P" now works with "-w" and "-x" and backreferences. Output of separators is now consistent. Other minor bugs were fixed.
Release Notes: Usage with multibyte locales was significantly accelerated. Mishandling of patterns like [^^-~] in unibyte locales was fixed. The deprecated "--mmap" option was removed. The behavior of the shortcurts "\s" and "\S" in multibyte locales was fixed. Handling of arbitrary PCRE errors was improved. Various further minor bug fixes were made.
Release Notes: "grep -P" can now use a just-in-time compiler to greatly speed up matches, assuming proper support from PCRE. Several multi-byte issues where resolved. Handling of very long lines on systems with a deficient read system call was improved.
Release Notes: Several false results of "grep -i '^$'" in multi-byte locales were resolved. A misdetection of text files as binary was resolved.
Release Notes: Sparse files are now treated as binary by default. Multi-byte locales with mismatching sizes of lower- and uppercase characters are now handled properly. A fix has been made to again allow the combined use of the "--include" and "--exclude" options.