Grep
僅使用 grep 輸出包含模式的文件名(不帶行輸出)
我想列出包含模式的文件,而不輸出包含模式的行。我認為可以使用
grep
. 在這個意義上我應該如何使用grep
?例如,以下命令給出所有文件中包含“stringpattern”(不區分大小寫)的所有行.txt
。我只想擁有文件的名稱(±行號)。grep -ni stringpattern *.txt
理想情況下,如果字元串/模式在一個文件中出現多次,我希望該文件有多行輸出。
如果您只需要匹配的文件:
grep -lie pattern -- *.txt
我認為您不能僅使用 grep 來僅列印文件和行號,因為使用 option
-n
,它會在每一行 ‘file:line:match’ 上輸出。如果文件名既不包含換行符也不包含:
換行符,您可以通過管道將cut
其僅獲取您想要的內容。grep -nie pattern -- /dev/null *.txt | cut -d: -f 1,2
/dev/null
需要*.txt
擴展為僅一個文件名的情況,grep
否則將不會列印文件名。使用 GNU 實現grep
或兼容,您可以使用-H
/--with-filename
代替以確保始終列印文件名。