15/11/2024

Commandes et Système

Comparez des fichiers entre eux avec diff sous Linux

I. Présentation

Il est souvent utile de savoir si deux fichiers comportent des différences. Cela peut par exemple être le cas dans le cas du développement d'application ou de script mais aussi pour la comparaison de configuration par exemple. Je vais ici vous présenter la commande "diff" sous Linux ainsi que quelques une de ses fonctionnalités pour y faire le tour.

II. Utilisation de la commande diff

La commande diff est par défaut présente sur la plupart des systèmes UNIX. Je fait ici mes commandes d'illustration sur une distribution Debian 7. Pour ce faire, je crée deux fichiers f1.txt contenant "Chaine de caractère" et f2.txt contenant la même chose. On va ensuite faire un "diff" sur ces deux fichiers pour voir leurs différences :

diff f1.txt f2.txt

On ne voit alors aucun retour, ce qui est normal puisque nos fichiers sont identiques (pour l'instant) ! Pour rendre le retour un peu plus sympa quand les fichiers comparés sont identiques, on peut ajouter l'option -s pour avoir le résultat suivant :

dif01

Je modifier maintenant mon fichier f2.txt pour y insérer des lettres majuscules aléatoirement dans le message au lieu de certaines minuscules :

diff f1.txt f2.txt

Voici le retour que nous aurons :dif02

On voit donc que diff nous trouve une différence entre le contenu des deux fichiers. Pour ignorer ce que l'on appelle la casse, on peut utiliser l'option "-i" :

diff f1.txt f2.txt -i

A nouveau, on peut également y joindre l'option "-s" pour avoir une confirmation textuelle que les fichiers sont identiques.

Nous allons maintenant ajouter deux lignes de texte dans le fichier f2.txt, ces deux lignes contiendront respectivement "Ligne1" et "Ligne2". On va ensuite comparer les deux fichiers :

dif03

On voit donc une détection de différence entre les deux fichiers. Si l'on ajoute la même modification dans f1.txt mais avec un saut de ligne entre les deux, la différence sera toujours détectée, pour éviter que les sauts de lignes vides soient considérées comme des différences, on peut utiliser l'option "-B", comme suivant :

dif04

De la même façon, nous pourrons exclure les différences d'espace au sein d'une même ligne avec l'option "-b" cette fois-ci. Voila, nous avons rapidement fait le tour de quelques options bien sympathiques de cette commande, il en existe beaucoup d'autres, vous pourrez les découvrir avec "diff --help".

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Comparez des fichiers entre eux avec diff sous Linux

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.