Em awk
, isso carrega o primeiro arquivo totalmente na memória:
$ awk 'NR==FNR { lines[$0]=1; next } $0 in lines' file1 file2
67
102
Ou, se você quiser acompanhar quantas vezes uma determinada linha aparece:
$ awk 'NR==FNR { lines[$0] += 1; next } lines[$0] {print; lines[$0] -= 1}' file1 file2
join
poderia fazer isso, embora exija que os arquivos de entrada sejam classificados, então você precisa fazer isso primeiro, e fazê-lo perde a ordem original:
$ join <(sort file1) <(sort file2)
102
67