Skip to content

[Linux] Ripgrep (rg): 超快文件搜尋工具

Last Updated on 2024-09-24 by Clay

Ripgrep (rg) 是一個用來快速搜尋文件內容的命令列工具,其設計目的為取代 grep,並解決 grep 在大量級的文件檢索效率。

Ripgrep 採用 Rust 語言撰寫,同時支援高效的正規表示法(Regular Expression)引擎和 I/O 操作,這也是其搜索迅速的原因之一。

而除了原生支援 Regular Expression 外,它也默認自動識別 .gitignore 等需要忽略的規則文件、隱藏檔案與二進制文件。


安裝方法

Linux

可以通過 aptyum 安裝:

sudo apt install ripgrep  # Ubuntu/Debian
sudo apt install ripgrep  # CentOS/Fedora


macOS

使用 Homebrew 安裝:

brew install ripgrep


Windows

可以從官方發佈頁面下載 Windows 可執行文件,或者使用 Scoop 安裝:

scoop install ripgrep

基本使用方法

基本的搜尋方法與 grep 相同。

rg 'keyword'


也可以指定搜尋特定的文件類別:

rg -t py 'TODO'


甚至是排除特定的文件或目錄(排除 logs/ 底下):

rg 'error' -g '!logs/*'


也支援同時搜尋多個關鍵字:

rg 'test|try'


常用參數為:

  • -i:忽略大小寫(case-insensitive)搜尋。
  • -v:反向搜尋,顯示不包含關鍵字的行。
  • -l:僅顯示包含匹配結果的文件名。
  • -n:顯示行號(默認行為)。
  • --count:僅顯示匹配行的總數。
  • --max-depth:設置搜尋深度,控制子目錄的搜尋層級。

進階一點的使用方法有可以搭配 less

rg -t py 'from|import' | less


以及指定特別的行號進行搜尋。可以使用 -A(after context)或 -B(before context):

rg 'keyword' -A 3 -B 2


這會顯示匹配結果前 2 行及後 3 行的內容。


References


Read More

Tags:

Leave a Reply