如何从 grep 输出中滤除唯一的结果?

如何从 grep 输出中滤除唯一的结果?

在 Linux 中,我可以使用 从文件中 grep 字符串grep mySearchString myFile.txt。如何才能仅获取唯一的结果?

答案1

您可以使用sortuniq公用设施。

例子:

[john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest"
测试
测试
测试
另一项测试
测试
[john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest" | sort | uniq
另一项测试
测试

根据数据,您可能还需要使用一些开关。

答案2

您可以使用:

grep -rohP "(mySearchString)" . | sort -u

-r:递归

-o:仅打印匹配的文本部分

-h:不打印文件名

-P:Perl 样式正则表达式(您可以根据情况使用 -E)

sort -u比 更好sort | uniq,正如@Chris Johnsen 指出的那样。

相关内容