Sur FreeBSD ou la plupart des systèmes Linux, vous pouvez diriger la sortie de diff via cat -v -e -t
pour afficher les différences d'espace.
diff file1 file2 | cat -vet
Les onglets seront affichés sous la forme ^I
, un $
sera affiché à la fin de chaque ligne afin que vous puissiez voir les espaces de fin, et les caractères non imprimables seront affichés sous la forme ^X
ou M-X
.
Si vous avez GNU coreutils (disponible sur la plupart des distributions Linux non-busybox), cela peut être simplifié pour
diff file1 file2 | cat -A
Sur les systèmes busybox, utilisez catv -vet
.
Pour vim
utilisateurs, il existe un utilitaire pratique pour afficher les différences exactes entre les fichiers :
vimdiff file1 file2
Cela mettra chaque fichier dans des fenêtres, côte à côte, et les différences seront mises en surbrillance en couleur.
Quelques commandes utiles en vimdiff
En vimdiff
, certaines commandes utiles sont :
-
]c
:passer au changement suivant -
[c
:saute au changement précédent -
ctrl-W ctrl-W
:passer à une autre fenêtre -
zo
:plis ouverts -
zc
:fermer les plis
Exemple
Voici un exemple de vimdiff
dans un xterm
comparer deux versions d'un cups
fichier de configuration :
Vous pouvez voir que de longues sections de lignes identiques ont été réduites. Ils peuvent être rouverts avec zo
.
Le jeu de couleurs variera en fonction de vos paramètres d'option. Dans l'exemple ci-dessus, lorsqu'une ligne apparaît dans un fichier mais pas dans l'autre, cette ligne reçoit un arrière-plan bleu foncé. Dans l'autre fichier, les lignes manquantes sont indiquées par des lignes pointillées. Lorsqu'une ligne apparaît dans les deux fichiers mais présente quelques différences, les parties inchangées des lignes ont un fond rose et les parties modifiées ont un fond rouge.
L'un des fichiers a-t-il été modifié sur une machine Windows ?
La terminaison de ligne standard sous Windows est CRLF, alors que sous Linux, c'est simplement LF (et sur Mac, c'était CR, mais je suppose que cela a changé depuis OS X).
Essayez wc -l
sur les fichiers et voyez combien de lignes, puis voyez si la différence de taille est la même que le nombre de lignes (la dernière ligne ne peut pas être terminée dans un fichier).