我有一定的軟體的多個版本(讓叫它MySoftware)安裝,我想找到的路徑到一個特定版本的組合find和grep。假設我有以下版本: 1.12.0
1.12.2
1.42.2
它的存盤方式如下:
~/src/MySoftware/1.12.0/...
~/src/MySoftware/1.12.2/...
~/src/MySoftware/1.42.2/...
在 shell 中,我可以做類似的事情find . -name MySoftware | grep 1.12.0。這是有效的,因為命令給了我 ~/src/MySoftware/1.12.0/路徑。
但是,當切換到 shell 腳本時,我嘗試這樣做:
find . -name "MySoftware" -exec grep "1\.12\.0" {} ';'
然而,上面的例子沒有回傳任何東西,我不知道為什么。其他嘗試grep -HF "1.12.0"也不起作用。我很感激任何建議
uj5u.com熱心網友回復:
請注意區別!
在第一個示例中,find . -name MySoftware | grep 1.12.0您正在構建一個包含檔案名稱的串列,然后 grep 特定版本。
但是,在第二個示例中,您正在嘗試查找相同的檔案,并且您正在嘗試在這些檔案中使用 grep !!!
所以,有了這個:
find . -name "MySoftware" -exec grep "1\.12\.0" {} ';'
您正在這些檔案中搜索!!!
我建議你這樣做:
find . -type f -name "MySoftware" | grep 1.12.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378759.html
下一篇:呼叫函式時Bash合并特定檔案
