ugrep Changelog

What's new in ugrep 6.0

May 7, 2024
  • quicker! 🚀 much faster search speeds on ARM CPUs and also faster overall on other CPUs using essentially the same SIMD algorithms but better optimized #385 see latest ugrep benchmarks for results
  • more good stuff! 🎉 includes ugrep-indexer, which is installed together with ugrep, see ugrep-indexer release notes v1.0.0

New in ugrep 5.1.4 (Apr 10, 2024)

  • Fix glitch: a may omit an after context line for regex patterns that start with a wildcard "zero or more" repetition such as .*

New in ugrep 5.1.3 (Apr 4, 2024)

  • Revert some of the third-party suggested configure scrip changes, this should make Homebrew ugrep include compression libraries again #380

New in ugrep 5.1.2 (Apr 3, 2024)

  • updated configure and makefiles to improve SIMD (SSE2/AVX2/AVX512BW/NEON/AArch64) detection and cross-compilation
  • removed unused m4/ax_check scripts, adding corresponding PKG_CHECK_MODULES to configure.ac instead #339
  • update some of the ctype function calls to avoid potential signedness pitfalls
  • AIX build #374
  • use statfs() with options --include-fs and --exclude-fs when the preferred statvfs() is not available
  • suppress --filter utility stderr messages when ugrep options -s (--no-messages) and -q (--quiet) are used #377
  • fix Cygwin --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)
  • support the NO_COLOR environment variable to suppress color output
  • fix TUI scroll glitch (cursor down to scroll screen content up) in non-split screen (glitch appeared when adding the split screen feature)
  • TUI line selection mode top row number indicator added, for consistency
  • TUI quit & output after line selection mode now behaves the same as non-TUI search output, for consistency
  • faster -q (--quiet) search

New in ugrep 5.1.1 (Mar 11, 2024)

  • A minor update to fix a problem with POSIX lazy quantifier matching when combined with anchors, causing longer pattern matches than expected

New in ugrep 5.1.0 (Mar 7, 2024)

  • a minor improvement of the regex syntax to allow escaped spaces #360
  • updated POSIX regex lazy quantifier matching in linear time using an advanced DFA transformation algorithm #174

New in ugrep 5.0.0 (Feb 17, 2024)

  • What's new:
  • New and updated regex engine to speed up searching patterns described in #288 using a new heuristic DFA cut algorithm
  • New option --exclude-fs default to exclude file systems that aren't specified as search targets #349
  • New option --all (-@) to #342 to search all files except hidden: cancel previous file and directory search restrictions
  • TUI regex syntax highlighting improved for --fixed-strings (-F) when used with option --bool (-% and -%%)
  • Fix #350 Linux procfs handling not as expected
  • Fix #355 "context before lines" sometimes incorrectly displayed (due to a misfiring optimization in a recent release)

New in ugrep 4.5.2 (Jan 10, 2024)

  • Include PR #343 and PR #344 to update ./build.sh --disable-7zip configure, compilation and linkage
  • Fix 7zip search failing on 32 bit systems when option -M is used (or -t when setting -M)

New in ugrep 4.5.1 (Jan 6, 2024)

  • Fix bzip3/7zip configure interference causing libbzip3 detection and linkage to fail when building ugrep with optional bzip3 support ./build.sh --with-bzip3.

New in ugrep 4.5.0 (Jan 5, 2024)

  • 7zip archive search with option -z #185
  • Apply Unicode normalization to canonicalize literal combining characters in regex patterns #298
  • Improved TUI TAB directory navigation when searching from the FS root
  • Updated ugrep.exe option -P to use PCRE2 latest stable version 10.42

New in ugrep 4.4.1 (Dec 19, 2023)

  • Fix installation of bash, fish and zsh autocompletions (for package distributors).

New in ugrep 4.4.0 (Dec 19, 2023)

  • What's new:
  • installs bash autocompletions for ugrep commands and options #327
  • installs fish and zsh autocompletions for ugrep commands and options #198
  • option -t (--file-type) now also accepts filename extensions as shortcuts, when unambiguous, for example, the shorter form -tpy for -tpython to select files to search #333
  • TUI ALT-SHIFT-% switches between "bool query lines" mode, "bool query files" mode, and bool queries off
  • TUI boolF mode (-%FQ) now applies syntax highlighting
  • support legacy grep long options without = to bind option arguments, like GNU grep also supports these legacy forms of long option arguments; in this context, note that the general recommendation is that long options which require an argument should be followed by an equals sign.

New in ugrep 4.3.6 (Dec 8, 2023)

  • Fix an issue with option -Zbest fuzzy matching

New in ugrep 4.3.5 (Dec 7, 2023)

  • updated option --index for accelerated index-based search, now also indexes and searches archives and compressed files with option -z
  • new ugrep.exe with option --index for accelerated index-based search on Windows
  • updated ugrep-indexer project to support archive/compressed file indexing with a new ugrep-indexer.exe version for Windows
  • updated MacOS moar-pager #328
  • faster search with -ABC context options #329

New in ugrep 4.3.4 (Nov 24, 2023)

  • The ug command no longer quits with an error message when no default .ugrep config file was found
  • Bzip3 is supported but not required to build ugrep, see also #316; to use bzip3 with ugrep, execute ./build.sh --with-bzip3.
  • Fix the output of + separators by no longer using them #317 for GNU grep compatibility
  • Fix option -v with -ABC context #319
  • Fix configuration file option arguments that may got lost and causes option argument errors in some cases after parsing a config file, such as colors=
  • Allow config file importing in config files using config=FILE (but does not permit recursive imports) see also #320
  • Add Dockerfile-minimized #322
  • Minor usability improvements

New in ugrep 4.3.3 (Nov 15, 2023)

  • Added brotli compressed files search support
  • Added bzip3 compressed files search support
  • Updated option --pretty to accept an optional WHEN argument never, always, auto similar to the --color option
  • Improved TUI screen blanking response when a new search starts, while also avoiding screen flicker
  • Fix option --zmax>1 when a decompression library produces a decompression error when decompressing a nested compressed file

New in ugrep 4.3.2 (Nov 4, 2023)

  • new official ugrep.com web site with the ugrep user guide and installation instructions, this site will always be safe and guaranteed to be ad free and cookie free; ugrep.org forwards to ugrep.com
  • double short option -%% enables both --files --bool (a single -% still enables only --bool) for convenience
  • updated thread pool scheduling and execution with thread affinity and priority settings, implements #305
  • improvements and fixes for minor (mostly cosmetic) issues
  • updated ugrep v4.3.2 benchmarks.

New in ugrep 4.3.1 (Oct 18, 2023)

  • TUI Tab directory navigation now also works when file and directory arguments are present on the command line
  • TUI ctrl-Y now also supports viewing standard input when piped to ugrep
  • TUI ctrl-Y now also supports viewing files stored in zip/tar/pax/cpio archives, including nested compressed files and archives
  • TUI regex syntax highlighting with user-definable colors; the highlighting is sensitive to the current regex syntax, i.e. ERE (default), BRE (-G), --bool, and -F (--fixed-strings).

New in ugrep 4.3.0 (Oct 8, 2023)

  • Redesigned TUI with a new split screen window pane to preview matching files.
  • new TUI split screen, activated with CTRL-T, and new option --split to start the TUI with a split screen (add split to your .ugrep configuration file to enable) #254
  • improved TUI screen updating
  • refactored the search engine internals to keep the search engine alive until ugrep terminates to optimize the TUI matching file preview pane display speed
  • improved option -o (--only-matching) layout when context options -ABC are used
  • fixed --zmax=n for n>1 that had a low chance to hang as discovered recently (about once in a few thousand runs) when searching (deeply) nested zip or tar archives
  • fixed compressed file search of files that are exactly one byte long, instead of rejecting those files as being empty
  • updated performance benchmark results: ugrep is faster than other grep tools on x64 and arm64 machines in nearly every test of 564 benchmark test cases

New in ugrep 4.2.0 (Sep 22, 2023)

  • Improved TUI to display search progress and final stats in a status line at the bottom
  • Improved TUI ctrl-Y to jump to the corresponding line number in the pager #296
  • Improved recursive search performance #297
  • Improved compatibility with GNU grep #273
  • Improved detection of special devices to avoid searching them

New in ugrep 4.1.0 (Sep 17, 2023)

  • Fix -Z fuzzy matching when character deletions are solely specified with a minus sign, as in -Z-NUM e.g. with -Z-1 the pattern 'abcd' should still match 'acd' with a missing character 'b' in the input (-Z worked fine, but -Z-1 did not match)
  • Fix --pager when a regex syntax error occurs #285
  • Update --pager to use $PAGER #286
  • Update --ignore-files for compliance with git and ag gitignore rules #118
  • Update -Q TUI ctrl-S and ctrl-W to jump to context group separators when context options -ABC are specified
  • Update -o for GNU grep compatibility with "empty-matching" patterns
  • Update POSIX [[:space:]] and s to exclude newline n matching. No regex pattern matches newlines, except for n, R and X, P{C} (anything not in Unicode class C), D (anything not a digit), H (anything not blank), and W (anything not a word character), for the latter patterns you can/should use the more conventional character classes [^p{C}], [^d] [^h] and [^w], respectively, to not match newlines
  • Improve performance: faster -c and line matching #284
  • Improve performance: faster "empty-matching" pattern search #287

New in ugrep 4.0.5 (Aug 28, 2023)

  • One last minor update before the break. I want to make sure ugrep is and remains a high-quality search tool.
  • Fixed a recently-added optimization that may in some rare cases cause a problem with a match at the end of a file.
  • Additional features and the promised additional speed-ups (and more) will be ready for a new release after a 3~4 week break

New in ugrep 4.0.4 (Aug 26, 2023)

  • new --delay=DELAY option to specify a default query TUI response delay time, which can be specified in a .ugrep config file with delay=DELAY (--save-config includes this setting also)
  • fix option -m compatibility issue wth GNU grep when showing context lines with -ABC after the last max match
  • updated --save-config as per user request
  • correct an issue with -o and context

New in ugrep 4.0.3 (Aug 25, 2023)

  • new --delay=DELAY option to specify a default query TUI response delay time, which can be specified in a .ugrep config file with delay=DELAY (--save-config includes this setting also)
  • fix option -m compatibility issue wth GNU grep when showing context lines with -ABC after the last max match

New in ugrep 4.0.2 (Aug 23, 2023)

  • additional speed up with improved parametrization of the matching algorithm decision logic 🚀
  • updated performance benchmarks showing that ugrep is almost always faster than other grep tools (more benchmarks will be added over time)

New in ugrep 4.0.1 (Aug 21, 2023)

  • this update resolves a legacy C++ compilation error with ptrdiff_t
  • speeds up option -l to search compressed files
  • enables an important search optimization that was no longer enabled
  • publish new ugrep performance benchmarks

New in ugrep 4.0.0 (Aug 20, 2023)

  • Ugrep 4.0 offers faster searching with improved internals:
  • faster async output, speeds up ugrep 3x when outputting many matching lines
  • removed "rest line" buffering, speeds up ugrep up to 2x, depending on the output-related options used
  • removed redundant "binary file" checking, speeds up ugrep 10%~20%
  • double size input buffer, speeds up searching 5%~20% when searching very large files (GB) with none/infrequent pattern matches
  • faster empty pattern matching, i.e. pattern '' matches all lines faster, as much as 10x faster
  • removed redundant color escape codes from the output
  • option -Q with an optional argument is now -Q=DELAY instead of -QDELAY, so -Q2 is -Q -2 (simple options should be composable/separable) which searches 2 directory levels deep with the query TUI
  • fully tested --index (still beta version) to search indexed file systems, see also WIP project ugrep-indexer

New in ugrep 3.12.7 (Aug 14, 2023)

  • This update of ugrep includes a compatibility improvement with one of GNU grep's idiosyncrasies: unpaired ) in regex are matched literally. This behavior is automatically in effect when the grep and egrep aliases of ugrep are used or explicitly with option -Y.

New in ugrep 3.12.6 (Aug 6, 2023)

  • New option -S (--dereference-files) to follow symbolic lines only to files, not to directories, when using option -r for recursive search. Updated default recursive search to strictly perform -r without following any symbolic links. New option --index for fast index-based search with the new ugrep-indexer tool. The ugrep-indexer tool is released on GitHub as a separate open source project.

New in ugrep 3.12.5 (Aug 4, 2023)

  • New --iglob and --glob-ignore-case options, as requested by ugrep users.

New in ugrep 3.12.3 (Jul 15, 2023)

  • Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty by default (that is, if a .ugrep configuration file does not override it with no-pretty). Fixed a potential pattern match issue in the new v3.12 optimizations.

New in ugrep 3.12.2 (Jul 9, 2023)

  • Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty by default (that is, if a .ugrep configuration file does not override it with no-pretty).

New in ugrep 3.12.1 (Jun 5, 2023)

  • New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed, includes a runtime check for tool availability; improved --filter option; speed improvements.
  • Ugrep runs faster than grep and ripgrep on Apple Silicon M1 and x64 machines for most common searches, such as searching for a few words to tens and hundreds of words in large files. It depends on the available hardware and the complexity of the search patterns.
  • Experiments on a MacBook PRO M1. The average elapsed time of 100 test runs of ugrep, ripgrep and GNU grep with increasing number of randomly picked words from the enwik8 100MB benchmark file
  • Results are for ugrep -on -f words enwik8 to search with line numbers and option -o to reduce output overhead. The performance of ugrep and ripgrep are more or less comparable when searching more strings and when searching more complex regex patterns. It depends.

New in ugrep 3.12.0 (Jun 3, 2023)

  • New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed;
  • Improved --filter option;
  • Seed improvements.

New in ugrep 3.11.2 (Apr 8, 2023)

  • This update includes usability improvements. We improved option --hyperlink to optionally take parameters PREFIX and +. The PREFIX parameter replaces file:// in the link with a custom PREFIX://. The + included the line number in the link, and when ugrep option -k is used, also includes the column number in the link.

New in ugrep 3.11.1 (Apr 2, 2023)

  • Smarter interactive navigation in the TUI when option --tree is used with option -l or -c, enabling the navigation keys CTRL-S (jump forward), CTRL-W jump backward), TAB (chdir into directory and save query state), SHIFT-TAB (chdir .. and restore query state), CTRL-Y (view file).

New in ugrep 3.11.0 (Mar 19, 2023)

  • Updated --format output when used with option -o by also enabling option -u to show all matches automatically; improved --json, --xml, --csv output when used with option -o; updated option -o output with headings (when applicable) for every match like GNU grep; updated options --format and --replace field %m to output the number of matches sequentially; new --format and --replace field %M outputs number of matching lines.

New in ugrep 3.10.1 (Mar 18, 2023)

  • Fixed a performance issue with specific regex patterns when used with case-insensitive pattern matching.

New in ugrep 3.10.0 (Mar 1, 2023)

  • New option --tree to output directory trees of files for options -l (--files-with-matches), -L (--files-without-match) and -c (--count). Updated option --pretty to enable --tree when output is sent to a terminal. Disable with --no-tree to output a traditional grep flat list.

New in ugrep 3.9.7 (Jan 31, 2023)

  • A minor update to handle gnutar archive extension field formats to search huge files (>4GB) stored in (gnu) tar archives.

New in ugrep 3.9.6 (Jan 25, 2023)

  • Fixed a Unicode-specific regex pattern syntax issue that caused a valid regex pattern to produce a regex syntax error message.

New in ugrep 3.9.5 (Jan 14, 2023)

  • Fix option -l (files-with-matches) when used in combination with option -z (decompress), which occasionally would display duplicate filenames when a compressed file has many matches. Fixed by draining the decompression pipe until eof of the compressed file in the searched archive, as was intended.

New in ugrep 3.9.4 (Jan 4, 2023)

  • Support ugrep on OpenIndiana Solaris/SunOS, fix spurious 0 byte in tar filename output results, fix support for PCRE2 prior 10.34 and other (minor) improvements.

New in ugrep 3.9.3 (Dec 29, 2022)

  • Fixed a PCRE2 library-related issue with -P (--perl-regexp) matching binary files.

New in ugrep 3.9.2 (Aug 22, 2022)

  • Fixed an issue with invalid Unicode regex patterns.

New in ugrep 3.9.1 (Aug 15, 2022)

  • A fix for a minor issue with fuzzy matching when only allowing substitutions.

New in ugrep 3.9.0 (Aug 15, 2022)

  • Release v3.9 makes -r the default recursive search without following symlinked directories, per popular demand. Symlinked files are always searched on a search path, except with option -p (--no-dereference).

New in ugrep 3.8.3 (Aug 13, 2022)

  • Release v3.9 makes -r the default recursive search without following symlinked directories, per popular demand. Symlinked files are always searched on a search path, except with option -p (--no-dereference).

New in ugrep 3.8.3 (Jun 29, 2022)

  • New option combination -o (--only-matching) with -ABC context to show the match within NUM columns, with context before and/or after, which visually aids in searching files with long lines; option -o with -b or -k now shows results on separate lines; new option --width to truncate long lines to the specified width or the terminal width by default; short ug command now sorts by name by default; query TUI ALT-] [ (increase/decrease context) and ALT-} { (increase/decrease fuzziness) keys switched meaning (quicker and more intuitive); new %+ format field used by updated --only-line-number option; new --help fuzzy help page; updated man pages; fixed bz2 issue cutting off decompression too soon, fixed tiny lz4 file search error, and other improvements.

New in ugrep 3.8.2 (Jun 11, 2022)

  • New option combination -o (--only-matching) with -ABC context to show the match within NUM columns, with context before and/or after, which visually aids in searching files with long lines; option -o with -b or -k now shows results on separate lines; new option --width to truncate long lines to the specified width or the terminal width by default; short ug command now sorts by name by default; query TUI ALT-] [ (increase/decrease context) and ALT-} { (increase/decrease fuzziness) keys switched meaning (quicker and more intuitive); new %+ format field used by updated --only-line-number option; new --help fuzzy help page; updated man pages; fixed bz2 issue cutting off decompression too soon, and other improvements.

New in ugrep 3.8.1 (Jun 7, 2022)

  • New option combination -o (--only-matching) with -ABC context to show the match within NUM columns, with context before and/or after, which visually aids in searching files with long lines; option -o with -b or -k now shows results on separate lines; new option --width to truncate long lines to the specified width or the terminal width by default; short ug command now sorts by name by default; query TUI ALT-] [ (increase/decrease context) and ALT-} { (increase/decrease fuzziness) keys switched meaning (quicker and more intuitive); new %+ format field used by updated --only-line-number option; new --help fuzzy help page; updated man pages; fixed bz2 issue cutting off decompression too soon, and other improvements.

New in ugrep 3.8.0 (May 30, 2022)

  • New option combination -o (--only-matching) with -ABC context to show the match within NUM columns, with context before and/or after, which visually aids in searching files with long lines;
  • Noption -o with -b or -k now shows results on separate lines;
  • New option --width to truncate long lines to the specified width or the terminal width by default;
  • Short ug command now sorts by name by default;
  • Query TUI ALT-] [ (increase/decrease context) and ALT-} { (increase/decrease fuzziness) keys switched meaning (quicker and more intuitive);
  • New %+ format field used by updated --only-line-number option;
  • New --help fuzzy help page;
  • Updated man pages and other improvements.

New in ugrep 3.7.11 (May 10, 2022)

  • New -Zbest (--fuzzy=best) option argument best to only output the best matching patterns. Updated option -Z (--fuzzy) can now be combined with -U (--binary) to fuzzy match bytes instead of Unicode characters. Additional --stats results with total lines searched and matched, and time elapsed. New complementary options --min-depth, --max-depth, --min-line and --max-line which are added for consistency with the updated options --min-count and --max-count. Updated the --min-count option, which can now be combined with any other option except with -v (--invert-match). Updated option -K (--range) to take a MAX argument instead of a FIRST argument for consistency with other min/max options. Recursive searching sysfd, such as /proc and /sys, no longer blocks on special files/devices. Fixed inconsistent colorization with option -v when used with context options -A, -B and -C. Fixed option -r when combined with file argument - (read standard input), which does both, like GNU grep. Other minor improvements and fixes.

New in ugrep 3.7.10 (May 8, 2022)

  • Updated option -Z (--fuzzy) can now be combined with -U (--binary) to fuzzy match bytes instead of Unicode characters. Additional --stats results with total lines searched and matched, and time elapsed. New complementary options --min-depth, --max-depth, --min-line and --max-line which are added for consistency with the updated options --min-count and --max-count. Updated the --min-count option, which can now be combined with any other option except with -v (--invert-match). Updated option -K (--range) to take a MAX argument instead of a FIRST argument for consistency with other min/max options. Recursive searching sysfd, such as /proc and /sys, no longer blocks on special files/devices. Fixed inconsistent colorization with option -v when used with context options -A, -B and -C. Fixed option -r when combined with file argument - (read standard input), which does both, like GNU grep. Other minor improvements and fixes.

New in ugrep 3.7.9 (Apr 8, 2022)

  • Additional --stats results with total lines searched and matched, and time elapsed. New complementary options --min-depth, --max-depth, --min-line and --max-line which are added for consistency with the updated options --min-count and --max-count. Updated the --min-count option, which can now be combined with any other option except with -v (--invert-match). Updated option -K (--range) to take a MAX argument instead of a FIRST argument for consistency with other min/max options. Recursive searching sysfd, such as /proc and /sys, no longer blocks on special files/devices. Fixed inconsistent colorization with option -v when used with context options -A, -B and -C. Fixed option -r when combined with file argument - (read standard input), which does both, like GNU grep. Other minor improvements.

New in ugrep 3.7.8 (Apr 5, 2022)

  • New complementary options --min-depth, --max-depth, --min-line and --max-line which are added for consistency with the updated options --min-count and --max-count. Updated the --min-count option, which can now be combined with any other option except with -v (--invert-match). Updated option -K (--range) to take a MAX argument instead of a FIRST argument for consistency with other min/max options. Recursive searching sysfd, such as /proc and /sys, no longer blocks on special files/devices. Fixed inconsistent colorization with option -v when used with context options -A, -B and -C. Fixed option -r when combined with file argument - (read standard input), which does both, like GNU grep. Updated --stats reporting and other minor improvements.

New in ugrep 3.7.7 (Apr 2, 2022)

  • New complementary options --min-depth, --max-depth, --min-line and --max-line which are added for consistency with the updated options --min-count and --max-count. Updated the --min-count option, which can now be combined with any other option except with -v (--invert-match). Updated option -K (--range) to take a MAX argument instead of a FIRST argument for consistency with other min/max options. Recursive searching sysfd, such as /proc and /sys, no longer blocks on special files/devices. Fixed colorization of option -v when used with context options -A, -B and -C. Fixed option -r when combined with argument - (read standard input), which does both, like GNU grep. Updated --stats reporting and other minor improvements.

New in ugrep 3.7.6 (Mar 16, 2022)

  • New --min-count option, new --hexdump options to grep binary files and display binary matches in hexadecimal with n hex lines before and after the match with --hexdump=Cn, --hexdump=An for n lines after and --hexdump=Bn for n lines before. Omitting n defaults to the entire matching line. Option -X is equivalent to --hexdump=2C for 2 hex columns per line and entire matching line as context. Includes user experience improvements, such as additional --help information and --stats details. This incremental update skips sysfd files that are empty and not searchable (e.g. located in /proc and /sys). We also made ugrep faster overall with performance improvements. More coming soon!

New in ugrep 3.7.5 (Mar 13, 2022)

  • New --hexdump options to grep binary files and display binary matches in hexadecimal with n hex lines before and after the match with --hexdump=Cn, --hexdump=An for n lines after and --hexdump=Bn for n lines before. Omitting n defaults to the entire matching line. Option -X is equivalent to --hexdump=2C for 2 hex columns per line and entire matching line as context. Includes user experience improvements, such as additional --help information and --stats details. This incremental update skips sysfd files that are empty and not searchable (e.g. located in /proc and /sys). We also made ugrep faster overall with performance improvements. More coming soon!

New in ugrep 3.7.4 (Feb 23, 2022)

  • New --hexdump options to grep binary files and display binary matches in hexadecimal with n hex lines before and after the match with --hexdump=Cn, --hexdump=An for n lines after and --hexdump=Bn for n lines before. Omitting n defaults to the entire matching line. Option -X is equivalent to --hexdump=2C for 2 hex columns per line and entire matching line as context. Includes user experience improvements, such as additional --help information and --stats details. We also made ugrep faster overall with performance improvements. More coming soon!

New in ugrep 3.7.3 (Feb 19, 2022)

  • New --hexdump options to grep binary files and display binary matches in hexadecimal with n hex lines before and after the match with --hexdump=Cn, --hexdump=An for n lines after and --hexdump=Bn for n lines before. Omitting n defaults to the entire matching line. Option -X is equivalent to --hexdump=2C for 2 hex columns per line and entire matching line as context. Includes user experience improvements, such as additional --help information and --stats details. We also made ugrep faster overall with performance improvements. More coming soon!

New in ugrep 3.7.2 (Feb 7, 2022)

  • New --hexdump options to grep binary files and display binary matches in hexadecimal with n hex lines before and after the match with --hexdump=Cn, --hexdump=An for n lines after and --hexdump=Bn for n lines before. Omitting n defaults to the entire matching line. Option -X is equivalent to --hexdump=2C for 2 hex columns per line and entire matching line as context. We also made ugrep faster overall with performance improvements. More coming soon!

New in ugrep 3.7.1 (Jan 28, 2022)

  • We made ugrep even faster and better overall with performance and usability improvements. More to come soon!

New in ugrep 3.7.0 (Jan 27, 2022)

  • We made ugrep even faster and better overall with performance and usability improvements. More to come soon!

New in ugrep 3.6.0 (Jan 12, 2022)

  • New --replace option to replace pattern matches with custom formatted text in the output with % format fields. This option can be combined with any other option, including -y (--any-line) to pass through a file with substitutions applied to the output. To make ugrep more user-friendly, the new --help format option argument displays a summary of % format fields, the new --help regex option argument displays an overview of regular expression pattern syntax, and the new --help globs option argument displays the gitignore-style glob syntax and conventions used by ugrep. Increased searching speed of large files with AVX optimizations applied to the default pattern matcher engine. AVX optimizations were largely disabled (only partially applied) to make ugrep binary portable on Linux platforms since ugrep v3.3.5, requested by issue trackers #103 and #143. Binary portability over x86/x64 now works better with new multi-version code selected at runtime to run the original faster pattern matching engine. More coming soon!

New in ugrep 3.5.0 (Jan 5, 2022)

  • New --zmax=NUM option to be used with -z (--decompress) to search compressed files and archives recursively stored within tar/zip/cpio/pax archives, e.g. to search tar and zip files stored in (compressed) tar files, in zip files etc. for up to NUM recursive levels deep. The --zmax argument may range from 1 (default) to 99 for up to 99 decompression and de-archiving steps. Improved option -U to be used for backward compatibility with GNU/BSD grep by no longer flagging invalid UTF as "binary files". More to come soon!

New in ugrep 3.4.0 (Dec 20, 2021)

  • New Boolean search query options --files and --lines. The specified Boolean search query conditions apply to lines by default. Because GNU/BSD grep and ugrep are generally line-based, --lines is the default option. Specify --files --bool to apply the specified Boolean query to files as a whole: a file matches if all Boolean conditions are satisfied by matching patterns anywhere in the file. More to come soon!

New in ugrep 3.3.12 (Dec 11, 2021)

  • Updated Windows CRLF output while maintaining grep compatibility. Faster column -k by on-demand computation. Faster grep files containing long Iines of text and binary files. This update corrects and further improves the input buffering method, which performed sub-optimally for long lines containing many pattern matches.

New in ugrep 3.3.11 (Dec 9, 2021)

  • Faster column -k by on-demand computation. Faster grep files containing long Iines of text and binary files. This update corrects and further improves the input buffering method, which performed sub-optimally for long lines containing many pattern matches.

New in ugrep 3.3.10 (Dec 3, 2021)

  • Faster grep files containing long Iines of text and binary files. This update corrects and further improves the input buffering method, which performed sub-optimally for long lines containing many pattern matches.

New in ugrep 3.3.9 (Nov 30, 2021)

  • Minor improvements.

New in ugrep 3.3.8 (Oct 24, 2021)

  • We made ugrep even better with Unicode 14 support, Windows filename globbing, new --format fields, and updated option -t filename patterns.

New in ugrep 3.3.7 (Aug 6, 2021)

  • We made ugrep even better with runtime enabling of of SSE2/AVX2/AVX512BW optimizations; ugrep -V shows this as +sse2, +avx2 and +avx512bw, respectively. New --hyperlink option. Revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. New --hexdump=a option (asterisk) to display conventional * for duplicate hex lines. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. Improved option -P (PCRE) search performance. Fixed a bug when the legacy grep GREP_COLOR environment variable is defined. More coming soon!

New in ugrep 3.3.6 (Jul 26, 2021)

  • We made ugrep even better with runtime enabling of of SSE2/AVX2/AVX512BW optimizations; ugrep -V shows this as +sse2, +avx2 and +avx512bw, respectively. New --hyperlink option. Revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. New --hexdump=a option (asterisk) to display conventional * for duplicate hex lines. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. Improved option -P (PCRE) search performance. More coming soon!

New in ugrep 3.3.5 (Jul 21, 2021)

  • We made ugrep even better with runtime enabling of of SSE2/AVX2/AVX512BW optimizations; ugrep -V shows this as +sse2, +avx2 and +avx512bw, respectively. New --hyperlink option. Revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. New --hexdump=a option (asterisk) to display conventional * for duplicate hex lines. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. Improved -P PCRE2 search performance. Fixed Windows ugrep.exe with PCRE2 library config problem that disabled Unicode matching. More coming soon!

New in ugrep 3.3.4 (Jun 23, 2021)

  • We made ugrep even better with a new --hyperlink option and a revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. Improved -P PCRE2 search performance. Fixed Windows PCRE2 library config problem that disabled Unicode marching.

New in ugrep 3.3.3 (Jun 20, 2021)

  • We made ugrep even better with a new --hyperlink option and a revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. More coming soon!

New in ugrep 3.3.2 (Jun 9, 2021)

  • We made ugrep even better with a new --hyperlink option and a revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. Fixed a compatibility issue with GNU grep's binary file search results, which should now be the same. More coming soon!

New in ugrep 3.3.1 (Jun 4, 2021)

  • We made ugrep even better with a new --hyperlink option and a revised and enhanced option -P (PCRE) compatible with GNU grep. Improved query UI option -Q with quick Tab/Shift-Tab directory and file navigation, CTRL-Y file viewing with new option --view to specify a file viewer, and improved CTRL-X/CTRL-R bookmarking to restore the search state. More coming soon!

New in ugrep 3.3 (May 29, 2021)

  • We made ugrep even better with a new --hyperlink option and a revised and enhanced option -P (PCRE) compatible with GNU grep. More coming soon!

New in ugrep 3.2.2 (May 13, 2021)

  • Added zstd-compressed file search with option -z (.zst, .zstd, .tzst) and advanced .zipx method zstd (93); other improvements. More coming soon!

New in ugrep 3.2.1 (May 5, 2021)

  • Added zstd-compressed file search with option -z (.zst, .zstd, .tzst) and advanced .zipx method zstd (93).

New in ugrep 3.2 (May 3, 2021)

  • Added zstd-compressed file search with option -z.

New in ugrep 3.1.15 (Apr 29, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v and new %[NAME]# named group captures with option -P and using (?<NAME>PATTERN); updated s pattern matching to exclude newline; improved response time to cancelled deep recursive searches; fixed a crash issue; other improvements. More coming soon!

New in ugrep 3.1.14 (Apr 28, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v and new %[NAME]# named group captures with option -P and using (?<NAME>PATTERN); updated s pattern matching to exclude newline, other improvements. More coming soon!

New in ugrep 3.1.12 (Apr 26, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v and new %[NAME]# named group captures with option -P and using (?<NAME>PATTERN); updated s pattern matching to exclude newline, other improvements. More coming soon!

New in ugrep 3.1.11 (Apr 4, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; updated s pattern matching to exclude newline, other improvements. More coming soon!

New in ugrep 3.1.10 (Mar 24, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; other improvements. More coming soon!

New in ugrep 3.1.9 (Feb 26, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; other improvements. More coming soon!

New in ugrep 3.1.8 (Feb 24, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; other improvements. More coming soon!

New in ugrep 3.1.7 (Feb 2, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; other improvements. More coming soon!

New in ugrep 3.1.6 (Jan 29, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns);
  • new --and and --not options;
  • new --dotall option;
  • updated --format to support -v;
  • other improvements.

New in ugrep 3.1.5 (Jan 29, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; new --dotall option; updated --format to support -v; other improvements. More coming soon!

New in ugrep 3.1.4 (Jan 24, 2021)

  • New --bool option to specify Boolean search query patterns (with Google search syntax or fzf-like when used with -F to search strings instead of regex patterns); new --and and --not options; updated --format to support -v; other minor improvements. More coming soon!

New in ugrep 3.1.3 (Jan 15, 2021)

  • New --bool option to specify a Boolean search query pattern (with Google search syntax or fzf-like when used with -F to search strings instead of regex subpatterns); new --and and --not options; updated --format to support -v; other minor improvements. More to come soon!

New in ugrep 3.1.2 (Jan 11, 2021)

  • New --bool option to specify a Boolean search query pattern (with Google search syntax or fzf-like when used with -F to search strings instead of regex subpatterns); new --and and --not options; updated --format to support -v; other minor improvements. More to come soon!

New in ugrep 3.1.1 (Dec 21, 2020)

  • New --bool option to specify a Boolean search query pattern (with Google search syntax or fzf-like when used with -F to search strings instead of regex subpatterns); new --and and --not options; updated --format to support -v.

New in ugrep 3.1.0 (Dec 14, 2020)

  • New --bool option to specify a Boolean search query pattern (with Google search syntax or fzf-like when used with -F to search strings instead of regex subpatterns); new --and and --not options; updated --format to support -v.

New in ugrep 3.0.6 (Dec 4, 2020)

  • New v3: performance enhancements and other improvements with a redesigned search engine. Search speeds are significantly increased when searching very large files (several GB). Added a new T3 benchmark with a large 13GB file to demonstrate the improvements. More features will be added soon!

New in ugrep 3.0.4 (Nov 3, 2020)

  • New v3: performance enhancements and other improvements with a redesigned search engine. Search speeds are significantly increased when searching very large files (several GB). Added a new T3 benchmark with a large 13GB file to demonstrate the improvements. Update v3.0.2 corrects an issue with ugrep v3.0.0 when opening root-owned files on some Linux systems and resolves a minor problem when matching a specific short pattern. Update v3.0.4 includes improvements and a fix for an issue with large zip files searched in the query UI and corrects a compressed file search issue on Windows systems. More features will be added soon!