查找两个文件之间的差异



我有几个包列表,其中有数百个条目,我想找出它们之间的区别。

文件的内容看起来像

文件1:

somepackage1 0.1
somepackage2 5.6
somepackage3 1.3-1
etc...

文件2:

somepackage1 0.1
somepackage2 5.7
somepackage3 1.3-1
somepackage4 0.1
etc...

我正在寻找几个命令或脚本,可以生成所有添加的新包。不仅是版本号,而且如果添加了新的软件包。

因此,例如,给定上面两个文件,命令或脚本将输出somepackage4

我一直在玩一些命令,但没有一个能正常工作。有人有办法做到这一点吗?

您似乎想要比较文件中的第一列,并打印第二列中唯一的行。使用comm:

comm -13 <(awk '{print $1}' file1 | sort) <(awk '{print $1}' file2 | sort)

对于你的输入,它会产生:

somepackage4

您可以使用grep
在文件2中查找列出的包,但不能在文件1 中查找

grep -vf <(cut -d' ' -f1 file1)  <(cut -d' ' -f1 file2)

使用awk

awk 'NR==FNR{a[$1];next}!($1 in a){print $1}' file1 file2

相关内容

  • 没有找到相关文章

最新更新