join -t, <(sort file1) <(sort -t, file2)
O acima faz o trabalho.
Eu tenho file1 (amostra):
60108903374
60172485121
60108919381
60174213128
60108919951
60108919970
601112020106
601112020107
601112020108
601112020113
601112020114
60175472940
E arquivo2 :
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
Eu quero mesclar file1
e file2
com correspondência de saída com base na primeira coluna, além de mostrar a segunda coluna de file2
.
Saída desejada :
60172485121,B
60174213128,A
file1
tem ~ 80k linhas e file2
tem 500k linhas.
Tentei usar:
join -1 1 -2 1 -o 1.1,2.2 file1 file2
awk -F, 'NF==1 {a[$1]++};
NF>=2 && a[$1]' file1 file2
saída obtida:
60175472940,A
60174213128,A
60172485121,B
Tags text-processing join