Se você não se importar com a saída sendo classificada, use comm
.
comm -13 <(sort /tmp/file1) <(sort /tmp/file2)
Saída (implicitamente ordenada):
500
600
700
file1
contém:
100
200
300
400
file2
contém:
500
600
700
200
300
O arquivo de saída esperado será:
500
600
700
Se você não se importar com a saída sendo classificada, use comm
.
comm -13 <(sort /tmp/file1) <(sort /tmp/file2)
Saída (implicitamente ordenada):
500
600
700
com join
:
join -j 1 -v 2 <(sort file1) <(sort file2)
Onde:
-j
define o campo de junção -v
para suprimir linhas associadas Ou com awk
:
awk 'NR==FNR{a[$1]++} !a[$1]' file1 file2
a
a
não estiver presente, imprima a linha