Grep

遞歸搜尋不適用於 solaris 上的 grep

  • March 4, 2017

在我們的 Solaris 伺服器上,我發現這grep -r不起作用,這是我使用grep. 似乎egrep具有相同的行為。

鑑於我無法控制機器,有沒有辦法grep執行遞歸搜尋?還是我需要將輸出通過管道傳輸findgrep

如果您想使用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

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