Ripgrep
ripgrep 路徑模式
我希望 ripgrep 搜尋具有指定模式的路徑。例如
rg PATTERN --path REGEX
其中 PATTERN 是 grep 的模式,而 REGEX 是路徑匹配模式。
我已經分散了文件,我不確定是否包含此功能。
使用該
-g/--glob
標誌,如指南中所述。它使用萬用字元而不是正則表達式,但在實踐中完成了同樣的事情。例如:rg PM_RESUME -g '*.h'
PM_RESUME
在我檢出 Linux 核心時僅在 C 標頭檔中找到。ripgrep 無法使用正則表達式匹配文件路徑。相反,如果您絕對需要使用正則表達式,則應使用 xargs:
rg --files -0 | rg '.*\.h$' --null-data | xargs -0 rg PM_RESUME
分解它:
rg --files -0
在標準輸出上列印它要搜尋的所有文件,由NUL
.rg '.*\.h$' --null-data
僅匹配文件列表中以 . 結尾的行.h
。--null-data
確保我們保留我們的NUL
字節。xargs -0 rg PM_RESUME
拆分NUL
分隔的參數,並將它們交給 ripgrep,它與與您的初始正則表達式匹配的文件列表精確對應。處理
NUL
字節對於完全正確是必要的。如果文件路徑中沒有空格,則命令更簡單:rg --files | rg '.*\.h$' | xargs rg PM_RESUME