Le besoin de comparaison de fichiers sur un système d'exploitation Linux est souvent négligé, mais a un rôle important à jouer, en particulier pour les administrateurs système Linux. La possibilité de comparer de manière flexible deux fichiers sur un terminal Linux permet de mieux comprendre à quel point un ensemble de fichiers est perçu comme unique ou différent.
[ Vous pourriez également aimer :Comment joindre deux fichiers texte sous Linux ]
Par exemple, deux fichiers peuvent exister avec les mêmes propriétés et la même taille. Au lieu de supposer qu'ils sont identiques, un programme de comparaison de fichiers Linux éclaircira l'air sur un tel problème. Vous pourriez être surpris de découvrir que le facteur de différenciation des deux fichiers est un libellé ou un espacement qui correspond à un fichier et qui ne correspond pas à l'autre.
Plusieurs programmes Linux basés sur des terminaux peuvent nous aider à atteindre l'objectif de cet article, mais seuls quelques-uns se démarquent en termes de fonctionnalités dynamiques.
Création de fichiers texte sous Linux
Créons deux exemples de fichiers à partir du terminal Linux. Assurez-vous que vous êtes un utilisateur sudoer ou que vous disposez des privilèges sudo sur le système d'exploitation Linux que vous utilisez.
$ sudo nano file1
Nous remplirons ce fichier avec du contenu aléatoire.
1 2 3 4 5 6 7 8 9 10un deux trois quatre cinq six sept huit neuf dixCréons un deuxième fichier.
$ sudo nano file2Nous remplirons ce fichier avec un contenu légèrement similaire à fichier1 .
11 2 13 4 15 6 7 8 19 10un deux fois trois quatre cinq six sept huit neuf dixUtiliser diff pour comparer des fichiers sous Linux
Depuis diff est un programme basé sur un terminal, l'utilisant génère les différences ciblées entre deux fichiers. En d'autres termes, la diff la sortie vous indique les modifications qui peuvent être implémentées sur file1 pour en faire une correspondance ou identique à fichier2 .
Afficher les différences entre deux fichiers
Mettons en œuvre la première tentative de comparaison de ces deux fichiers :
$ diff fichier1 fichier2Nous pouvons interpréter cette sortie de la manière suivante :
Si vous revenez au fichier1 d'origine et fichier2 fichiers que nous avons créés précédemment, vous remarquerez que les diff ci-dessus la sortie de la commande n'affiche pas tout le contenu des deux fichiers. Il a omis toutes les similitudes des deux fichiers et n'a affiché que leurs différences.
Découvrez que deux fichiers sont identiques à l'aide de Diff sous Linux
Créons un troisième fichier appelé file3 .
$ sudo nano file3Nous remplirons ce fichier avec un contenu similaire à file1.
1 2 3 4 5 6 7 8 9 10un deux trois quatre cinq six sept huit neuf dixUn diff d'une seule ligne la sortie de la commande devrait pouvoir nous dire directement si deux fichiers sont identiques.
$ diff -s fichier1 fichier3L'utilisation des
-s
supplémentaires L'argument de commande rend cette sortie possible. Cependant, l'implémenter avec deux fichiers non identiques affichera toujours leurs différences.$ diff -s fichier1 fichier2Si vous recherchez une sortie d'une seule ligne sur deux fichiers que vous soupçonnez d'être différents, envisagez l'utilisation de la commande diff avec le -q option.
$ diff -q fichier1 fichier2Les fichiers fichier1 et fichier2 diffèrentVue alternative de la sortie de la commande Diff
Si vous avez besoin que la comparaison de sortie de vos deux fichiers soit côte à côte, envisagez d'implémenter le diff commande avec le
-y
option.$ diff -y fichier1 fichier2Si vous souhaitez que la commande ci-dessus supprime ou ignore les similitudes des deux fichiers, incluez le
--suppress-common-lines
option.$ diff -y --suppress-common-lines fichier1 fichier2Si vous avez affaire à deux fichiers volumineux et que vous souhaitez limiter la sortie à des numéros de colonne spécifiques, vous devez implémenter le diff commande de la manière suivante.
$ diff -y -W 50 fichier1 fichier2La commande ci-dessus suppose que les deux fichiers en comparaison sont quelque peu volumineux et dépassent 50 colonnes en termes de taille de texte. La sortie diff sera limitée à 50 colonnes.