Linux vous offre plusieurs options pour comparer deux fichiers. La commande la plus populaire pour comparer deux fichiers est diff . Dans ce didacticiel, nous examinerons la commande diff et quelques autres options que vous pouvez utiliser pour comparer deux fichiers sous Linux.
Créons deux fichiers à utiliser comme exemples tout au long du didacticiel.
Texte pour le fichier 1 :
Welcome to the best source for learning Linux. How are you doing?
Texte pour le fichier 2 :
Welcome to Linux For Devices! How are you doing?
Commande Diff pour comparer deux fichiers sous Linux
La commande Diff est la commande la plus couramment utilisée lorsqu'il s'agit de comparer deux fichiers. Le nom est l'abréviation de "différence “. La sortie vous indique les étapes à suivre pour modifier le premier fichier afin qu'il corresponde au second fichier.
La syntaxe pour utiliser la commande diff est :
diff [option] [file 1] [file 2]
Voyons la commande diff en action.
diff [file 1] [file 2]
La sortie affiche uniquement les lignes qui ne correspondent pas. Les lignes sont affichées dans l'ordre des fichiers comme mentionné dans la commande.
Essayons de comprendre le résultat.
Vous pouvez voir que la sortie commence par ‘1c1’ . C'est au format [plage][abc][plage].
Où le premier champ de plage appartient au premier fichier et le deuxième champ de plage appartient au deuxième fichier.
La lettre du milieu peut être l'une des trois suivantes.
- un : ajouter
- c : changer
- d : supprimer
Dans notre exemple, ‘1c1’ signifie que vous devez changer numéro de ligneun du premier fichier pour vous assurer que les deux fichiers se synchronisent jusqu'à la ligne numéro un du deuxième fichier.
3d2 signifie que vous devez supprimer la ligne numéro trois du premier fichier afin de s'assurer que les deux fichiers se synchronisent à la ligne numéro deux du deuxième fichier.
Mode contextuel (diff -c)
Pour voir la différence entre deux fichiers en mode contextuel, utilisez -c drapeau avec la commande diff.
diff -c [file 1] [file 2]
Essayons de comprendre le résultat.
La sortie commence par des méta-informations sur le fichier. Il s'agit d'informations telles que le nom du fichier, la date et l'heure de création et les autorisations.
La ligne suivante est *** 1,3 ****. Cette ligne contient les numéros de ligne de départ et d'arrivée pris en compte lors de la comparaison.
Après c'est le texte du fichier 1. Ici vous pouvez voir certains symboles avant la ligne. Voyons ce que signifient ces symboles.
- + :La ligne est manquante dans le premier fichier. Vous pouvez soit l'ajouter dans le premier fichier, soit le supprimer du second fichier.
- – : La ligne est manquante dans le deuxième fichier. Vous pouvez soit l'ajouter dans le deuxième fichier, soit le supprimer du premier fichier.
- ! : La ligne doit être modifiée afin de la faire correspondre dans les deux lignes.
Les mêmes informations sont répétées pour le second fichier.
Format unifié (diff -u)
Le format unifié est une version améliorée du mode contextuel. La syntaxe est la suivante :
diff -u [file 1] [file 2]
Vous pouvez voir qu'il transmet les mêmes informations mais de manière concise.
Vimdiff pour comparer deux fichiers sous Linux
Une autre façon de comparer deux fichiers est Vimdiff. Cela ne fonctionnera que si vous avez l'éditeur Vim sur votre système.
La syntaxe pour comparer deux fichiers à l'aide de vimdiff est :
vimdiff [file 1] [file 2]
Voici à quoi ressemble la sortie. Il ouvre les deux fichiers côte à côte dans l'éditeur Vim. Il met également en évidence les parties qui ne correspondent pas dans les deux fichiers. Vous devriez utiliser vimdiff si vous êtes à l'aise avec l'éditeur Vim.
Différence de couleur
Le script Perl colordiff est un wrapper pour 'diff' et produit la même sortie mais avec une jolie mise en évidence 'syntax'. Il vous donne également la possibilité de personnaliser les couleurs.
Pour installer colordiff sur votre système, utilisez la commande apt :
sudo apt install colordiff
Cette commande installera colordiff sur votre système. Pour comparer deux fichiers en utilisant colodiff utilisez :
colordiff [file 1] [file 2]
Vous pouvez voir que la sortie est la même que celle produite ci-dessus dans la commande diff. La seule différence est celle de la couleur dans la sortie.
Conclusion
Ce didacticiel portait sur les différentes façons de comparer des fichiers sous Linux.