Simples com join
:
join -1 2 -2 6 -o 1.2,2.14 <(sort -k2 file1) <(sort -k6 file2 )
-
-1 2
define que emfile1
o campo 2 é o campo de junção. -
-2 6
define que emfile2
o campo 6 é o campo de junção. -
-o 1.2,2.14
é o formato de saídafile1
campo 2 seguido porfile2
campo 14. -
<(sort ...)
os dois arquivos devem ser classificados no campo de associação-k
parajoin
para funcionar corretamente.
Ou com awk
(não precisa de uma entrada classificada):
awk 'FNR==NR{a[$2]=$0} FNR!=NR&&a[$6]{print $6,$14}' file1 file2
-
FNR==NR
aplica-se ao primeiro arquivofile1
:-
a[$2]=$0
preenche a matriza
com o segundo campo$2
como índice.
-
-
FNR!=NR
aplica-se ao segundo arquivofile2
: -
a[$6]
se o 6º campo$6
estiver presente na matriza
.-
print $6,$14
imprime os dois valores.
-