Bash: 仅当第一列相同时快速查找第二列两个文件的差异

Bash: Quickly find diff of two files of second column only if the first column is the same

我有两个大文件,每个大约 7GB。只有当两个文件的第一列的编号相同时,我才想找出第二个文件的区别。这两个文件已排序,但可以有不同的行数。

第一个文件如下所示:(1.txt)

5 5
6 6
7 7 
8 8
9 9

第二个文件如下所示:(2.txt):

3 3
4 4
5 5
6 6
7 4 
8 4
9 9

输出应如下所示:

7 4
8 4 

现在我有这个单线,但我不确定它是否可以更快:

mawk 'NR==FNR{a[]=; next} ( in a) && a[]!=' 1.txt 2.txt

如果文件按连接键排序,最简单(也是最快)的是

$ join file1 file2 | awk '!={print ,}'

7 4
8 4