2010-02-21 02:41:41 +0000 2010-02-21 02:41:41 +0000
79
79

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

在linux中,我可以用grep mySearchString myFile.txt从一个文件中grep一个字符串。如何才能得到唯一的结果?

答案 (2)

132
132
132
2010-02-21 02:52:47 +0000

您可以使用 sort uniq 实用程序来实现。

例如:

[john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest" test test test another test test [john@awesome ~]$ echo -e "test\ntest\ntest\nanother test\ntest" | sort | uniq another test test

根据数据,你可能也想利用一些开关。

3
3
3
2019-08-22 21:13:48 +0000

你可以使用

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

-r: 递归

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

-h: 不打印文件名

-P: Perl 风格的 regex (你可以根据你的情况使用 -E 代替)

sort -usort | uniq更好,正如 @Chris Johnsen 指出的。