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

时间:2016-03-21 01:11:55

标签: unix compare

如何比较unix中的这2个大文件。

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

我怎样才能获得'480'的输出,因为这就是我所期待的。

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

你们有什么想法吗?

提前感谢您度过愉快的一天。 Godbless!

1 个答案:

答案 0 :(得分:0)

我认为您想要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然后减去)