$ join -v 1 -v 2 <( sort file-1 ) <( sort file-2 )
def4321
jk16754
mnop3847
join
realiza uma operação JOIN relacional em seus arquivos de entrada classificados (usando a primeira coluna delimitada por tabulação em cada arquivo, mas isso pode ser alterado na linha de comando, consulte o manual). Ele exibe os dados correspondentes por padrão, mas com -v 1
e -v 2
, podemos obter as linhas de cada arquivo que não correspondem no outro arquivo.
Se o seu shell não suportar a substituição de processo com <(...)
, então ordene os arquivos antecipadamente. Você pode querer fazer isso de qualquer maneira se planeja executar o comando várias vezes ou fazer outro trabalho nos arquivos.
$ sort -o file-1.sorted file-1
$ sort -o file-2.sorted file-2
$ join -v 1 -v 2 file-[12].sorted