1ère ligne: a
signifie ajouté, d
supprimé et c
modifié. Les numéros de ligne du fichier d'origine apparaissent avant ces lettres et ceux du fichier modifié apparaissent après la lettre.
2ème ligne: les lignes avec <
proviennent du fichier 1 et sont différentes du fichier 2.
3ème ligne est un diviseur.
4ème ligne: les lignes avec >
proviennent du fichier 2 et sont différentes du fichier 1.
(Si vous voyez jamais =
cela signifie que les lignes sont les mêmes dans les deux fichiers)
Et votre problème peut être dû à des espaces ou à des caractères non lisibles par l'homme: ceux-ci déclenchent également une différence.
Il y a quelques options pour manipuler la sortie.
Exemple:
rinzwind @ discworld: ~ $ plus 1
tester
test2
test3
rinzwind @ discworld: ~ $ plus 2
tester
test2
test3
format contextualisé:
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 ****
tester
! test2
test3
--- 1,3 ----
tester
! test2
test3
UNE "!" représente un changement entre les lignes qui correspondent dans les deux fichiers. Un "+" représente l'ajout d'une ligne, tandis qu'un espace vide représente une ligne inchangée. Au début du patch figurent les informations sur le fichier, y compris le chemin d'accès complet et un horodatage. Au début de chaque bloc, figurent les numéros de ligne correspondant à la modification correspondante dans les fichiers. Une plage de nombres apparaissant entre des ensembles de trois astérisques s'applique au fichier d'origine, tandis que des ensembles de trois tirets s'appliquent au nouveau fichier. Les plages de blocs spécifient les numéros de ligne de début et de fin dans le fichier respectif.
Développer le commentaire de Lekensteyn sur le format unifié:
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 @@
tester
-test2
+ test2
test3
Le format commence par le même en-tête de deux lignes que le format de contexte, sauf que le fichier d'origine est précédé de "---" et le nouveau fichier de "+++". Ensuite, un ou plusieurs éléments de modification contenant les différences de ligne dans le fichier. Les lignes contextuelles inchangées sont précédées d'un caractère d'espacement, les lignes d'addition sont précédées d'un signe plus et les lignes de suppression sont précédées d'un signe moins.
Quelques options utiles:
-b
Ignorer les changements dans la quantité d'espace blanc.
-w
Ignorer tous les espaces blancs.
-B
Ignorer toutes les lignes vides.
-y
sortie en 2 colonnes.