Grep
遞歸搜尋不適用於 solaris 上的 grep
在我們的 Solaris 伺服器上,我發現這
grep -r
不起作用,這是我使用grep
. 似乎egrep
具有相同的行為。鑑於我無法控制機器,有沒有辦法
grep
執行遞歸搜尋?還是我需要將輸出通過管道傳輸find
到grep
?
如果您想使用
find
,這將是最快的方法:find . -type f -exec grep pattern {} +
但是,Gnu grep 很可能已經安裝在您的機器上。
它是 Solaris 11 中預設安裝的一部分
/usr/gnu/bin/grep
。對於 Solaris 10,您可以在/usr/sfw/bin/ggrep
. 在舊版本上,它可能是從 sunfreeware 或其他儲存庫安裝的,請檢查/usr/local/bin/grep
並/opt/csw/bin/grep
查找常見位置。
如果已安裝,請改用ggrep 。
例如,從目前目錄搜尋“mysearchstring”到所有子目錄 (
-R
),並顯示匹配的文件名和路徑 (-H
) 並忽略二進製文件 (-I
)。不要忘記*
命令末尾的 。/usr/sfw/bin/ggrep -H -R -I "mysearchstring" *
ggrep 位於
/usr/sfw/bin
您可以使用 EXPORT 命令將其添加到您的配置文件中,以便您可以直接從命令行呼叫它。PATH=$PATH:/usr/sfw/bin export PATH
Solaris 版本:SunOS 5.10 Generic_147440-13 sun4u sparc SUNW,SPARC-Enterprise