Você pode usar awk para isso:
awk 'FNR==NR{a[$1];next};!($1 in a)' file1 file2 > file3
Explicação:
-
FNR == NR: esse teste é verdadeiro quando o número de registros é igual ao número de registros no arquivo. Isso só é válido para o primeiro arquivo, pois o segundo arquivoNRserá igual ao número de linhas do arquivo1 +FNR. -
a[$1]: crie um índice de elemento de matriz do primeiro campo do arquivo1. -
next: pule para o próximo registro para que nenhum processamento seja feito no arquivo1. -
!($1 in a): Veja se o primeiro campo ($ 1) está presente na matriz, ou seja, no arquivo1, e imprima a linha inteira (para o arquivo3).
Baseado em um dos exemplos do #awk wiki .