合并Linux上的两个文件,只保留两个文件中出现的行

时间:2013-08-18 17:07:09

标签: linux centos

在Linux中,如何合并两个文件并且只保留两个文件中匹配的行?

每一行用换行符分隔(\n)。

到目前为止,我找到sort,然后使用comm -12。这是最好的方法(假设它是正确的)?

fileA包含

aaa
bbb
ccc
ddd

fileB包含

aaa
ddd
eee

我想要一个包含

的新文件
aaa
ddd

1 个答案:

答案 0 :(得分:2)

如果您的两个输入文件都是lexicographically sorted,则确实可以使用comm

$ comm -12 fileA fileB > fileC

如果情况并非如此,您应首先sort输入文件:

$ comm -12 <(sort fileA) <(sort fileB) > fileC