Grep
如何在沒有 -r 開關的情況下使用 grep 在父文件夾的子文件夾中的文件中查找文本字元串
我正在使用 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