如果在两个文件之间找到相同的字符串,则不要再次打印

如果在两个文件之间找到相同的字符串,则不要再次打印

我正在寻找字符串SUCCESSfile_1& 中file_2,在这种情况下,它会查找字符串并根据它是仅在file_1还是在两个文件上打印它file_1file_2而我正在寻找它只在一个文件的两个文件上打印一次。如何做到这一点?

$ grep SUCCESS file_1  file_2

结果:

file_1:Host fox_01 is SUCCESS
file_2:Host fox_02 is SUCCESS
file_2:Host fox_01 is SUCCESS

我愿意接受任何建议或解决方案,不一定是 grep。

答案1

尝试这个,

awk '/SUCCESS/ && !a[$0]++' file_1 file_2

Host fox_01 is SUCCESS
Host fox_02 is SUCCESS

将检查关键字“SUCCESS”并忽略重复项

答案2

用于grep -h不打印文件名,然后awk 抑制重复行:

grep -h SUCCESS file_1  file_2 | awk '!seen[$0]++'

或者如果您想排序:

grep -h SUCCESS file_1  file_2 | sort -u

相关内容