如何在Linux中检查第二个列表名称中的文件名?

时间:2013-06-21 04:54:08

标签: linux bash centos

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您还可以使用grep

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

-f告诉grepab.txt获取模式,-v反转匹配。

答案 2 :(得分:0)

您还可以使用awk

awk 'NR==FNR{a[$1];next}!($1 in a)' ab.txt cd.txt