NEW ugrep 6.0: A more powerful, ultra fast, user-friendly, compatible grep. Includes a TUI, Google-like Boolean search with AND/OR/NOT, fuzzy search, hexdumps, searches (nested) archives (zip, 7z, tar, pax, cpio), compressed files (gz, Z, bz2, lzma, xz, lz4, zstd, brotli), pdfs, docs, and more
-A
may omit an after context line for regex patterns that start with a wildcard "zero or more" repetition such as .*
PKG_CHECK_MODULES
to configure.ac insteadstatfs()
with options --include-fs
and --exclude-fs
when the preferred statvfs()
is not available--filter
utility stderr messages when ugrep options -s
(--no-messages
) and -q
(--quiet
) are used #377--filter
utility hanging after fork when worker threads are active, by forcing single-threaded search (a bit crude, but Cygwin fork isn't identical to Unix fork)NO_COLOR
environment variable to suppress color output-q
(--quiet
) searchA minor update to fix a problem with POSIX lazy quantifier matching when combined with anchors, causing longer pattern matches than expected #369
Lazy quantifier POSIX regex matching with efficient DFAs is/was claimed to be impossible in the past, when in fact I wrote a new algorithm for the high-performance RE/flex regex matcher in 2015/2016. This latest installment of the DFA construction algorithm makes the syntax and behavior of POSIX regex lazy quantifier matching align with Perl regex lazy quantifier matching. Lazy quantifiers are of the form ??
(lazy optional) and *?
and +?
(lazy repetitions) to match no more than necessary, typically by backtracking until matching (Perl). Note that ugrep and RE/flex pattern matching is efficiently performed with a DFA in linear time, i.e. matching is backtrack-free. Pattern searching also uses match predictions to avoid backtracking.
--exclude-fs
default to exclude file systems that aren't specified as search targets #349--all
(-@
) to #342 to search all files except hidden: cancel previous file and directory search restrictions--fixed-strings
(-F
) when used with option --bool
(-%
and -%%
)-Z
) or the PCRE2 library (option -P
), which are unchanged--index
, because it may increase the false positive rate for "normal" patterns. "Leading wildcard patterns" should still be avoided with option --index
, such as \w+lookingfor
and instead use lookingfor
to avoid index-based search false positives (lower performance)./build.sh --disable-7zip
configure, compilation and linkage-M
is used (or -t
when setting -M
)fix bzip3/7zip configure interference causing libbzip3 detection and linkage to fail when building ugrep with optional bzip3 support ./build.sh --with-bzip3
-z
#185-P
to use PCRE2 latest stable version 10.42io_uring
(could be 2x faster)