
當使用帶有通配符的 grep 時,如下所示
grep -in github */*
每個目錄grep
顯示很多訊息,例如
grep: dir1/dir2: Is a directory
如何抑制這些訊息?
令我驚訝的是,使用該標誌--exclude-dir
並不起作用。
我在 MacOS 上使用grep (BSD grep) 2.5.1-FreeBSD
。
答案1
-d skip
將使 grep 跳過目錄:
grep -in -d 跳過 github/
根據這個 MaxOS 手冊頁該選項應該適用於 MacOS grep。如果事實證明這不適用於 MacOS grep,您可以安裝Homebrew MacOS 套件管理器然後使用 Homebrew 安裝GNU 版本的 grep,因為 GNU grep 支援-d skip
(儘管在這種情況下,您必須將包含 GNU grep 的目錄設定為PATH
環境變數中的第一個)。
答案2
使用find
用於尋找文件和grep
到克/重/p在文件內:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
每個工具的名稱中都有關於其用途的重要線索:-)。