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