GNU/Linux >> Tutoriales Linux >  >> Linux

Listado de líneas de un solo archivo en DIFF

No estoy seguro diff solo puede hacerlo, pero siempre puede usar el poder de otras utilidades GNU para ayudarlo.

diff -u diffa.txt diffb.txt | grep '^-[^-]' | sed 's/^-//'

Hace la diferencia, luego selecciona solo las líneas que comienzan con '-'; esas se cambian y tienen valores del archivo diffa.txt, luego sed simplemente elimine esos signos '-'.

Editar: Después de algunos experimentos con diff , parece que el siguiente comando produce lo que desea:

diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt

El método más simple es usar comm utilidad de Linux (necesita un archivo ordenado para la entrada). Escribe en la salida estándar:

  • líneas que son únicas para diffa.txt

  • líneas que son únicas para diffb.txt

  • líneas que son comunes

y puede suprimir cada uno de ellos por el parámetro 1,2 o 3 según corresponda. Entonces, en su caso, se verá así:

comm -23 diffa.txt diffb.txt

Suprime líneas que son únicas para diffb.txt, líneas que son comunes e imprime líneas que son únicas solo para diffa.txt

Fuente de: https://www.tutorialspoint.com/unix_commands/comm.htm


Me gustaría mencionar que comm espera archivos de entrada ordenados y, por lo tanto, informa resultados diferentes a diff .

diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt

es universal Felicitaciones a @vava


Linux
  1. ¿Eliminar todos los archivos/directorios excepto un archivo?

  2. ¿Dividir archivo por número de líneas, incluido el encabezado en cada una?

  3. ¿Reemplazar líneas que coinciden con un patrón con líneas de otro archivo en orden?

  4. ¿Copiar las últimas líneas N de un archivo a otro?

  5. ¿Cómo agregar varias líneas a un archivo?

Cómo unir varias líneas en una en un archivo en Linux

Cómo quitar líneas de un archivo usando el comando Sed

Lectura de líneas de un archivo con Bash:para vs. ¿Mientras?

Eliminar líneas pares o impares de un archivo de texto

Eliminar las primeras N líneas de un archivo de registro activo

Dibujar aleatoriamente un cierto número de líneas de un archivo de datos