你如何grep並且只返回匹配的行?即結果中省略了路徑/文件名。grep沒有顯示路徑/文件:行
在這種情況下,我想在所有的.bar文件,以尋找當前目錄下,搜索術語FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
你如何grep並且只返回匹配的行?即結果中省略了路徑/文件名。grep沒有顯示路徑/文件:行
在這種情況下,我想在所有的.bar文件,以尋找當前目錄下,搜索術語FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
無需find
。如果你只是尋找一個特定目錄中的模式,這應該足夠了:
grep -hn FOO /your/path/*.bar
哪裏-h
是隱藏文件名參數,從man grep
:
-h, - no-filename
抑制輸出文件名的前綴。當只有一個文件(或只有標準輸入)要搜索時,這是默認的 。您使用我們
-H,--with文件名
打印每個匹配的文件名
注意。當有多個文件要搜索時,這是默認值。
不是真的那麼難手冊頁一看,是什麼呢?
-h, --no-filename
Suppress the prefixing of file names on output. This is the default when there
is only one file (or only standard input) to search.
只需將-H
替換爲-h
即可。檢查man grep
更多細節上的選項
find . -name '*.bar' -exec grep -hn FOO {} \;
感謝您的回答,但更容易檢查的StackOverflow :) – chessofnerd
奇蹟爲什麼谷歌沒有特殊情況,聯機手冊像是特例一切。 – Gordon
@ TC1手冊頁通常由交換機而不是任務組織。通讀每一個可能的轉換是令人厭煩的。 – mikemaccana