Formation PUB110 : Linux, 2018 Travailler avec les fichiers

4.4 Comparer des fichiers et des dossiers (diff)


La commande diff permet de faire ressortir les différences entre deux fichiers ou encore entre les fichiers présents dans deux dossiers.

Différences entre deux fichiers

Prenons les deux fichiers suivants :

Fichier1.txt

Ligne 1
Ligne 2
Ligne 3
Ligne 4
Ligne 5

Fichier2.txt

Ligne 1 modifiée
Ligne 3
Ligne 4
Ligne 5 modifiée
Ligne 6 ajoutée

Pour trouver facilement les différences entre ces deux fichiers, lancez la commande :

Linux

diff fichier1.txt fichier2.txt

Le résultat indiquera ce qu'il faut modifier dans le premier fichier pour qu'il devienne identique au deuxième fichier.

La commande précédente affichera ceci :

Résultat à l'écran

1,2c1

< Ligne 1

< Ligne 2

---

> Ligne 1 modifiée

5c4,5

< Ligne 5

---

> Ligne 5 modifiée

> Ligne 6 ajoutée

La première ligne (1,2c1) indique que les lignes 1 à 2 du premier fichier doivent être changées (c) pour devenir équivalentes à la ligne 1 du deuxième fichier.

Dans les lignes suivantes :

  • le symbole < indique que l'extrait provient du premier fichier;
  • le symbole > indique qu'il provient du deuxième fichier;
  • le symbole --- permet de séparer les deux blocs.

On voit donc les deux premières lignes du fichier puis la ligne correspondante dans le deuxième fichier.

À la 6e ligne (5c4,5), on apprend que la ligne 5 du premier fichier doit être changée pour correspondre aux lignes 45 à 5 du deuxième fichier.

Différences entre deux dossiers

Vous désirez comparer les fichiers présents dans deux dossiers ? Ajoutez les options :

  • -r pour que la comparaison soit également faite dans les sous-dossiers
  • -q pour que la sortie indique seulement le nom des fichiers qui sont différents (et non les lignes différentes).

Ex :

Linux

diff -rq /Users/monnom/dossier1 /Users/monnom/dossier2

On obtiendra un résultat du genre :

Résultat à l'écran

Only in /Users/monnom/dossier1: unfichier.txt
Only in /Users/monnom/dossier2: unautrefichier.txt

Pour plus d'information

« diff ». Manuel de l'utilisateur Linux. http://www.linux-france.org/article/man-fr/man1/diff-1.html

« Linux diff command ». Computer hope. https://www.computerhope.com/unix/udiff.htm

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre