Primera línea: a
significa agregado, d
eliminado y c
modificado. Los números de línea del archivo original aparecen antes de estas letras y los del archivo modificado aparecen después de la letra.
2da línea: la línea con <
es del archivo 1 y es diferente del archivo 2.
La tercera línea es un divisor.
4ta línea: la línea con >
es del archivo 2 y es diferente del archivo 1.
(Si alguna vez lo ve =
significa que las líneas son las mismas en ambos archivos)
Y su problema podría ser espacios en blanco u otros caracteres legibles no humanos: esos también provocan una diferencia.
Hay algunas opciones para manipular la salida.
Ejemplo:
rinzwind @ discworld: ~ $ más 1
prueba
prueba2
prueba3
rinzwind @ discworld: ~ $ más 2
prueba
prueba2
prueba3
formato contextualizado:
rinzwind @ discworld: ~ $ diff -c 1 2
*** 1 2011-08-13 17: 05: 40.433966684 +0200
--- 2 2011-08-13 17: 11: 24.369966629 +0200
***************
*** 1,3 ****
prueba
! prueba2
prueba3
--- 1,3 ----
prueba
! prueba2
prueba3
UNA "!" representa un cambio entre líneas que se corresponden en los dos archivos. Un "+" representa la adición de una línea, mientras que un espacio en blanco representa una línea sin cambios. Al comienzo del parche se encuentra la información del archivo, incluida la ruta completa y una marca de tiempo. Al comienzo de cada trozo están los números de línea que se aplican para el cambio correspondiente en los archivos. Un rango de números que aparece entre conjuntos de tres asteriscos se aplica al archivo original, mientras que los conjuntos de tres guiones se aplican al nuevo archivo. Los rangos de trozos especifican los números de línea inicial y final en el archivo respectivo.
Ampliando el comentario de Lekensteyn sobre el formato unificado:
rinzwind @ discworld: ~ $ diff -u 1 2
--- 1 2011-08-13 17: 05: 40.433966684 +0200
+++ 2 2011-08-13 17: 11: 24.369966629 +0200
@@ -1,3 +1,3 @@
prueba
-test2
+ test2
prueba3
El formato comienza con el mismo encabezado de dos líneas que el formato de contexto, excepto que el archivo original está precedido por "---" y el nuevo archivo está precedido por "+++". Después de esto, hay uno o más trozos de cambio que contienen las diferencias de línea en el archivo. Las líneas contextuales no modificadas están precedidas por un carácter de espacio, las líneas de adición están precedidas por un signo más y las líneas de eliminación están precedidas por un signo menos.
Algunas opciones útiles:
-b
Ignorar los cambios en la cantidad de espacio en blanco.
-w
Ignora todos los espacios en blanco.
-B
Ignora todas las líneas en blanco.
-y
salida en 2 columnas.