Installé avec le paquet colordiff
Voir aussi : diff, sdiff, wdiff, mgdiff, fldiff, xxdiff, zdiff, bzdiff, xzdiff, diff3, meld, kdiff3, kompare et diffuse
Afficher la version de la commande colordiff
colordiff --version
ou
apt-cache policy colordiff
Fichiers utilisés pour les tests (numérotés pour visibilité)
file1.txt
1 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 2 3 Aenean commodo ligula eget dolor. Aenean massa. 4 5 Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
file2.txt
1 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 2 3 Aenean commodo ligula eget dolor. Aenean massa. 4 5 Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
file3.txt
1 Nulla consequat massa quis enim. 2 3 Aenean commodo ligula eget dolor. Aenean massa. 4 5 Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. 6 7 Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Comparer deux fichiers ligne par ligne
colordiff filename1 filename2
Si les fichiers sont identiques, il n’y a aucun affichage mais la valeur 0 est retournée.
Si les fichiers sont différents, les différences sont affichées et la valeur 1 est retournée.
Les différences sont affichées selon les règles suivantes :
- XaY (add) : mode ajout; il faut ajouter les lignes Y du fichier de droite après la ligne X du fichier de gauche pour obtenir la similarité
- XdY (delete) : mode suppression; il faut supprimer les X du fichier du gauche car on ne les retrouve pas après la ligne Y du fichier de droite
- XcY (change) : mode remplacement; il faut remplacer les lignes X du fichier de gauche par les lignes Y du fichier de droite
- < : Identifie les lignes propres au fichier de gauche (argument 1)
- > : Identifie les lignes propres au fichier de droite (argument 2)
ex :
# colordiff file1.txt file2.txt # echo $? 0
# colordiff file1.txt file3.txt 1c1 < Lorem ipsum dolor sit amet, consectetuer adipiscing elit. --- > Nulla consequat massa quis enim. 3a4,5 > > Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. # echo $? 1
colordiff -u filename1 filename2
- – : Identifie les lignes propres au fichier de gauche (argument 1)
- + : Identifie les lignes propres au fichier de droite (argument 2)
# colordiff -u file1.txt file3.txt --- file1.txt 2016-11-24 14:13:13.766323527 +0100 +++ file3.txt 2016-11-24 14:14:05.942323527 +0100 @@ -1,5 +1,7 @@ -Lorem ipsum dolor sit amet, consectetuer adipiscing elit. +Nulla consequat massa quis enim. Aenean commodo ligula eget dolor. Aenean massa. +Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. + Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
colordiff -c filename1 filename2
- * : Identifie le fichier de gauche (argument 1)
- – : Identifie le fichier de droite (argument 2)
- ! et ! : Identifie une différence sur les deux fichiers
- – : Identifie une partie exclusive au fichier de gauche (argument 1)
- + : Identifie une partie exclusive au fichier de droite (argument 2)
# colordiff -c file1.txt file3.txt *** file1.txt 2016-11-24 14:13:13.766323527 +0100 --- file3.txt 2016-11-24 14:14:05.942323527 +0100 *************** *** 1,5 **** ! Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. --- 1,7 ---- ! Nulla consequat massa quis enim. Aenean commodo ligula eget dolor. Aenean massa. + Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. + Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Ignorer la casse lors de la comparaison
colordiff -i filename1 filename2
Ne pas tenir compte des espaces lors de la comparaison
colordiff -w filename1 filename2
Les espaces ne sont pas considérés, toutefois les lignes vides exclusives à un fichier sont toujours signalées.
Retourner un affichage même si les deux fichiers sont identiques
colordiff -s filename1 filename2
Par défaut, aucune information n’est affichée si les deux fichiers sont identiques.
Avec l’option -s, un affichage est retourné malgré tout.
S’ils sont différents, les différences sont affichées, comme c’est le cas sans l’option -s.
ex :
# colordiff -s file1.txt file2.txt
Les fichiers file1.txt et file2.txt sont identiques.
Afficher seulement si deux fichiers diffèrent
colordiff -q filename1 filename2
Par défaut, les différences entre deux fichiers sont affichées.
Avec l’option -q, la commande diff ne précise que si les deux fichiers sont différents.
ex :
# colordiff -q file1.txt file3.txt
Les fichiers file1.txt et file3.txt sont différents.
Afficher les fichiers comparés côte-à-côte
colordiff filename1 filename2 --side-by-side
ex :
# colordiff file1.txt file3.txt --side-by-side Lorem ipsum dolor sit amet, consectetuer adipiscing elit. | Nulla consequat massa quis enim. Aenean commodo ligula eget dolor. Aenean massa. Aenean commodo ligula eget dolor. Aenean massa. > > Donec quam felis, ultricies nec, pellentesque eu, pretium qui Cum sociis natoque penatibus et magnis dis parturient montes, Cum sociis natoque penatibus et magnis dis parturient montes,
- | : Identifie une différence sur les deux fichiers
- < : Identifie une partie exclusive au fichier de gauche (argument 1)
- > : Identifie une partie exclusive au fichier de droite (argument 2)
Afficher les fichiers comparés côte-à-côte en supprimant les lignes communes
colordiff filename1 filename2 --side-by-side --suppress-common-lines
ex :
# colordiff file1.txt file3.txt --side-by-side --suppress-common-lines Lorem ipsum dolor sit amet, consectetuer adipiscing elit. | Nulla consequat massa quis enim. > > Donec quam felis, ultricies nec, pellentesque eu, pretium qui
Comparer le contenu de deux répertoires
colordiff -r directory1 directory2
Seuls les contenus sont comparés, et non l’horodatage (ni mtime, ni atime, ni ctime).
La casse est respectée, sauf si l’option --ignore-file-name-case est ajoutée.
ex :
# colordiff -r dir1/ dir2/
Seulement dans dir1/: file3.txt