当我 grep 某个字符串时,我试图只显示唯一的文件名。目前,如果某个字符串在文件中出现多次,我会使用相同的文件名获得多个结果。
例如:
如果我有一个字符串" string12345"它在filename1.txt中的几行中出现3次,在filename2.txt内的几行中出现3次,当我使用* grep' string12345' .txt 它显示3次出现filename1.txt和filename2.txt
现在我想要实现的只是显示1次出现的filename1.txt和filename2.txt。提前谢谢。
答案 0 :(得分:3)
使用-l
标志。
的test.txt:
Hello, World!
Hello, World!
Grep搜索:
$ grep ./ -re "Hello"
./test.txt:Hello, World!
./test.txt:Hello, World!
$ grep ./ -re "Hello" -l
./test.txt
从手册:
-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.