ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. ripgrep has first class support on Windows, macOS and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep.
This is a new minor version release of ripgrep that contains some major new
features, a huge number of bug fixes, and is the first release based on
libripgrep. The entirety of ripgrep's core search and printing code has been
rewritten and generalized so that anyone can make use of it.
Major new features include PCRE2 support, multi-line search and a JSON output
- The minimum version required to compile Rust has now changed to track the
latest stable version of Rust. Patch releases will continue to compile with
the same version of Rust as the previous patch release, but new minor
versions will use the current stable version of the Rust compile as its
minimum supported version.
- The match semantics of
-w/--word-regexphave changed slightly. They used
\b(?:<your pattern>)\b, but now it's
(?:^|\W)(?:<your pattern>)(?:$|\W). This matches the behavior of GNU grep
and is believed to be closer to the intended semantics of the flag. See
#389 for more details.
- FEATURE #162:
libripgrep is now a thing. The primary crate is
- FEATURE #176:
-U/--multilineflag that permits matching over multiple lines.
- FEATURE #188:
-P/--pcre2flag that gives support for look-around and backreferences.
- FEATURE #244:
--jsonflag that prints results in a JSON Lines format.
- FEATURE #321:
--one-file-systemflag to skip directories on different file systems.
- FEATURE #404:
--sortrflag for more sorting. Deprecate
- FEATURE #416:
--crlfflag to permit
$to work with carriage returns on Windows.
- FEATURE #917:
--trimflag strips prefix whitespace from all lines printed.
- FEATURE #993:
--null-dataflag, which makes ripgrep use NUL as a line terminator.
- FEATURE #997:
--passthruflag now works with the
- FEATURE #1038-1:
--block-bufferedfor forcing a buffer strategy.
- FEATURE #1038-2:
--pre-globfor filtering files through the
- BUG #2:
Searching with non-zero context can now use memory maps if appropriate.
- BUG #200:
ripgrep will now stop correctly when its output pipe is closed.
- BUG #389:
-w/--word-regexpflag now works more intuitively.
- BUG #643:
Detection of readable stdin has improved on Windows.
- BUG #441,
Matching empty lines now works correctly in several corner cases.
- BUG #764:
Color escape sequences now coalesce, which reduces output size.
- BUG #842:
Add man page to binary Debian package.
- BUG #922:
ripgrep is now more robust with respect to memory maps failing.
- BUG #937:
Color escape sequences are no longer emitted for empty matches.
- BUG #940:
Context from the
--passthruflag should not impact process exit status.
- BUG #984:
Fixes bug in
ignorecrate where first path was always treated as a symlink.
- BUG #990:
Read stderr asynchronously when running a process.
- BUG #1013:
Add compile time and runtime CPU features to
- BUG #1028:
Don't complete bare pattern after