1a linha: a
significa adicionado, d
excluído e c
alterado. Os números de linha do arquivo original aparecem antes dessas letras e os do arquivo modificado aparecem depois da letra.
2ª linha: a linha com <
é do arquivo 1 e é diferente do arquivo 2.
A terceira linha é um divisor.
4ª linha: a linha com >
é do arquivo 2 e é diferente do arquivo 1.
(Se você vir =
isso significa que as linhas são iguais nos dois arquivos)
E seu problema pode ser espaços em branco ou outros caracteres legíveis não humanos: eles também provocam uma diferença.
Existem algumas opções para manipular a saída.
Exemplo:
rinzwind @ discworld: ~ $ mais 1
teste
test2
test3
rinzwind @ discworld: ~ $ mais 2
teste
test2
test3
formato de contexto:
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 ****
teste
! test2
test3
--- 1,3 ----
teste
! test2
test3
UMA "!" representa uma alteração entre as linhas que correspondem nos dois arquivos. Um "+" representa a adição de uma linha, enquanto um espaço em branco representa uma linha inalterada. No início do patch estão as informações do arquivo, incluindo o caminho completo e o registro de data e hora. No início de cada pedaço são os números de linha que se aplicam à alteração correspondente nos arquivos. Um intervalo numérico que aparece entre conjuntos de três asteriscos se aplica ao arquivo original, enquanto conjuntos de três hífens se aplicam ao novo arquivo. Os intervalos do hunk especificam os números de linha inicial e final no respectivo arquivo.
Expandindo o comentário de Lekensteyn sobre o 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 @@
teste
-test2
+ test2
test3
O formato começa com o mesmo cabeçalho de duas linhas que o formato de contexto, exceto que o arquivo original é precedido por "---" e o novo arquivo é precedido por "+++". A seguir, estão um ou mais blocos de alterações que contêm as diferenças de linha no arquivo. As linhas contextuais inalteradas são precedidas por um caractere de espaço, as linhas adicionais são precedidas por um sinal de mais e as linhas de exclusão são precedidas por um sinal de menos.
Algumas opções úteis:
-b
Ignore as alterações na quantidade de espaço em branco.
-w
Ignore todo o espaço em branco.
-B
Ignore todas as linhas em branco.
-y
saída em 2 colunas.