仅在命令grep结果上显示唯一文件名

时间:2018-03-09 09:34:06

标签: unix grep

当我 grep 某个字符串时,我试图只显示唯一的文件名。目前,如果某个字符串在文件中出现多次,我会使用相同的文件名获得多个结果。

例如:

如果我有一个字符串" string12345"它在filename1.txt中的几行中出现3次,在filename2.txt内的几行中出现3次,当我使用* grep' string12345' .txt 它显示3次出现filename1.txt和filename2.txt

现在我想要实现的只是显示1次出现的filename1.txt和filename2.txt。提前谢谢。

1 个答案:

答案 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.