Grep
如何在 ack 和 grep 中進行最大深度搜尋?
有沒有辦法告訴
ack
只搜尋目前文件夾上的文本?(或指定一個max-depth
級別?)和grep
?
用於:
-n
_no-recurse
$ ack -n foo
grep
預設情況下不是遞歸的,-r
只有在需要遞歸搜尋時才應使用該標誌。您可以使用以下方式搜尋目前目錄
grep
:$ grep -- foo *
你可以用
-exec
參數找到。例子:find . -maxdepth 1 -exec grep foo {} \;
這可以縮放,即
-maxdepth 2
。編輯
正如文中提到的
$$ answer by @Stéphane Chazelas $$,建議限制
find
為正常文件,這樣當參數實際上是目錄路徑grep
時不會產生錯誤:{}
find . -maxdepth 1 -type f -exec grep -H foo {} \;
-type f
是find
將搜尋結果限制為文件的過濾器-H
是grep
用於為每個匹配列印文件名的選項(多個文件匹配時的期望行為)