1

我想问,如果我有两个列表名称,如何检查文件,比如

cat /data/file1/ab.txt
aa
bb
cc
dd
ee

cat /data/file2/cd.txt
cc
dd
ee
aa
zz
xx
yy

我希望输出类似于:

zz
xx
yy
4

3 回答 3

1
sort ab.txt > /tmp/file1
sort cd.txt > /tmp/file2
comm -13 /tmp/file1 /tmp/file2

comm程序比较两个文件并显示它们共同或独特的行。-13表示省略文件 1 特有的和共有的行。

于 2013-06-21T04:59:16.910 回答
0

您还可以使用grep

$ grep -vf ab.txt cd.txt
zz
xx
yy

-f告诉grep从匹配中获取模式ab.txt-v反转匹配。

于 2013-06-21T05:02:55.367 回答
0

您还可以使用awk

awk 'NR==FNR{a[$1];next}!($1 in a)' ab.txt cd.txt
于 2013-06-21T05:20:44.063 回答