Comparar dos archivos de texto y guardar los que faltan

Comparar dos archivos de texto y guardar los que faltan

Tengo dos archivos de texto:

primer archivo de texto:

Hello
Hi
Hola
Bonjour

Segundo archivo de texto:

Hi 
Bonjour

¿Cómo puedo mostrar las diferencias entre ellos independientemente del número de línea? Es decir, quiero guardar el resultado que es

Hello
Hola

En un nuevo archivo de texto

Respuesta1

No está claro qué significa "las diferencias", pero aquí hay algo que cumple con las entradas y salidas dadas:

$ cat >1
Hello
Hi
Hola
Bonjour

$ cat >2
Hi
Bonjour

$ diff  --old-line-format=''  <(sort 1)  <(sort 2)  >new

$ cat new
Hi
Bonjour

Respuesta2

Para generar líneas completas que existen en el primer archivo pero no en el segundo:

grep -vxFf second first

Alternativamente, ordene los archivos y luego use comm:

comm -23 <(sort first) <(sort second)

Respuesta3

Usar el comando awk puede resolver este problema:

awk 'NR==FNR{uu[$1]=1}NR!=FNR&&uu[$1]!=1{print}' second first  

información relacionada