比较 unix 文件1(2M 个数字/行/行)、file2(2,000,480 个数字/行/行)中的 2 个文件



如何在 unix 中比较这两个大文件。

我已经尝试使用"grep -Fxvf file1.txt file2.txt | wc -l",但输出为 2,000,480,切换文件 1 和 file2 时输出为 1,999,999。

我怎样才能得到'480'的输出,因为这是我所期望的。

我也尝试过使用 diff/cmp 命令,但输出太复杂了。

我认为您想要 2 个文件中行号差异的绝对值。您可以使用awk轻松实现它并获得不错的结果。您将读取数组中的行数,然后减去END块中的数组值。对于纯外壳,它必须变得更加复杂。假设您生成了一些测试数据(10 和 14 行文件):

$ seq 1 10 > ten
$ seq 1 14 > fourteen

然后你做:

$ ( wc -l ten ; wc -l fourteen ) | awk '{ print $1}' | sort -rn | xargs -J % echo % - p | dc

结果:

4

但更好的方法是只做 3 行(获取file1字数,然后file2然后减去)

相关内容

  • 没有找到相关文章

最新更新