比Linux grep更快的操作系统文件目录搜索工具:ripgrep

21-06-15 banq

ripgrep 比Linux的grep快接近三倍!如果您喜欢速度、默认过滤、更少的错误和 Unicode 支持,请使用 ripgrep。

ripgrep 是一个面向行的搜索工具,它递归地搜索当前目录以查找正则表达式模式。默认情况下,ripgrep 将遵守 gitignore 规则并自动跳过隐藏的文件/目录和二进制文件。ripgrep 在 Windows、macOS 和 Linux 上拥有一流的支持,每个版本都提供二进制下载。ripgrep 类似于其他流行的搜索工具,如 The Silver Searcher、ack 和 grep。

ripgrep 很快,因为:

  • 它建立在Rust 的正则表达式引擎之上 。Rust 的正则表达式引擎使用有限自动机、SIMD 和积极的文字优化来使搜索非常快。(可以通过-P/--pcre2标志选择 PCRE2 支持。)
  • Rust 的正则表达式库通过将 UTF-8 解码直接构建到其确定性有限自动机引擎中来保持完全 Unicode 支持的性能。
  • 它支持使用内存映射进行搜索或使用中间缓冲区进行增量搜索。前者更适合单个文件,后者更适合大目录。ripgrep 会自动为您选择最佳搜索策略。
  • 适用你的忽略模式.gitignore使用的文件 RegexSet。这意味着单个文件路径可以同时与多个 glob 模式匹配。
  • 它使用无锁并行递归目录迭代器,由 crossbeam和 提供 ignore

ack 的作者安迪·莱斯特 (Andy Lester)发表了一个很好的表格,比较了 ack、ag、git-grep、GNU grep 和 ripgrep 的特性:https ://beyondgrep.com/feature-comparison/

ripgrep 的预编译二进制文件存档可用于 Windows、macOS 和 Linux。Linux 和 Windows 二进制文件是静态可执行文件。建议下面未明确提及的平台用户下载这些档案之一。

VS Code 中的代码搜索功能在幕后使用 ripgrep

常用命令: rg -i 要搜索的内容

1
猜你喜欢