我正在使用 Linuxfind命令。它查看所有*.jar檔案及其內容并在其中找到“foo”一詞,但有時檔案名也可能包含“foo”一詞。(即 foo.jar、foo-123.jar、myfoo.jar 等)如果是這樣,我想突出顯示檔案名中的“foo”一詞。
我有 2 個單獨運行很好的命令,但有沒有辦法將它們組合成一個陳述句?
find . -type f -name *.jar | grep -E --color "foo"
find . -type f -name *.jar -exec grep -li "foo" {} \;
uj5u.com熱心網友回復:
使用該選項-fprint的find寫入程序替代。
find . -type f -name \*.jar -fprint >(grep --color foo) -exec grep -li foo {} \;
注意:參考帶有通配符的引數,例如*. -E如果您只搜索一個簡單的字串,則使用該選項是沒有用的。
uj5u.com熱心網友回復:
要查找內容和檔案名中包含foo一詞的檔案,您可以執行以下操作
find . -type f -name *.jar -exec grep -li "foo" {} \; | grep -Fi foo
-exec 的結果將列印其中包含foo的所有檔案的名稱,隨后的grep從這些名稱中包含foo 的檔案中進行選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392364.html
