Grep

如何在沒有 -r 開關的情況下使用 grep 在父文件夾的子文件夾中的文件中查找文本字元串

  • August 11, 2018

我正在使用 Solaris 10,並且有兩個grep版本,一個是一個/usr/bin,一個是/usr/xpg4/bin. 我一直在尋找有關如何使用grep. 所有答案都談到-r-R我的版本沒有可用的開關grep

標準(POSIX)語法是:

find /path/to/parent -type f -exec grep 'XXX' /dev/null {} +

(這/dev/null是為了確保grep始終列印文件名)。這將適用於包括 Solaris 在內的所有 POSIX 系統。唯一已知的不工作的 90 後系統是舊的(現在非常舊的)GNU 系統。

GNU 最初引入了一個-print0謂詞和一個-0選項來xargs代替它:

find /path/to/parent -type f -print0 | xargs -0 grep 'XXX' /dev/null

現在有一些其他實現支持它,但不是 Solaris。

上面,理論上,如果沒有文件,您需要添加-r選項以避免執行,但這不那麼便攜,在這種特殊情況下,不會產生功能差異grep

引用自:https://unix.stackexchange.com/questions/139581