Commandes Linux : colordiff

COLORDIFF

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
Fermer le menu
%d blogueurs aiment cette page :