比Linux grep更快的作業系統檔案目錄搜尋工具:ripgrep

banq發表於2021-06-15

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 要搜尋的內容

相關文章