我有文件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
我想将file1
和file2
与基于第一列的输出匹配进行合并,并显示来自 的第二列file2
。
所需输出:
60172485121,B
60174213128,A
file1
有 ~80k 行和file2
500k 行。
尝试使用:
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