linux - grep使用




我如何使用grep在Linux上顯示文件名(沒有內嵌匹配)? (2)

我如何使用grep在Linux上顯示文件名(沒有內嵌匹配)?

我通常使用類似於:

find . -iname "*php" -exec grep -H myString {} \;

我怎樣才能得到文件名(帶路徑),但沒有匹配? 我必須使用xargs嗎? 我沒有看到在我的grep手冊頁上做到這一點的方法。


對於簡單的文件搜索,您可以使用grep的-l-r選項:

grep -rl "mystring"

所有的搜索都是由grep完成的。 當然,如果您需要選擇其他參數上的文件,找到正確的解決方案:

find . -iname "*.php" -execdir grep -l "mystring" {} +

execdir選項為每個目錄構建每個grep命令,並將文件名只連接到一個命令( + )。


grep(1)手冊頁:

  -l, --files-with-matches
          Suppress  normal  output;  instead  print the name of each input
          file from which output would normally have  been  printed.   The
          scanning  will  stop  on  the  first match.  (-l is specified by
          POSIX.)




grep