如何合并不同行和列的两个文件并输出匹配的行和列?

如何合并不同行和列的两个文件并输出匹配的行和列?

我有文件1(样本):

60108903374
60172485121
60108919381
60174213128
60108919951
60108919970
601112020106
601112020107
601112020108
601112020113
601112020114
60175472940

文件2

60179970001,A
60172681920,A
60174202041,A
60172514180,A
60174314679,A
60174325306,A
60175472940,A
60174213128,A
60175328984,A
60175349857,A
60172796759,A
60172798922,A
60179195129,A
60172485121,B
60173483126,A
60172683175,A
60174521828,A
60142536314,B
60175347909,B
60175183031,B

我想将file1file2与基于第一列的输出匹配进行合并,并显示来自 的第二列file2

所需输出

60172485121,B
60174213128,A

file1有 ~80k 行和file2500k 行。

尝试使用:

join -1 1 -2 1 -o 1.1,2.2 file1 file2

答案1

join -t, <(sort file1) <(sort -t, file2)

上面的工作就完成了。

答案2

awk -F, 'NF==1 {a[$1]++}; 
         NF>=2 && a[$1]' file1 file2
  • 如果我们只有一个字段,请保存它
  • 如果我们有更多并且第一个字段已保存,则打印它

获得的输出:

60175472940,A
60174213128,A
60172485121,B

相关内容