GNU/Linux >> Tutoriels Linux >  >> Linux

Comparez deux fichiers sous Linux - Utilisation de diff, vimdiff et colordiff

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.


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Un moyen facile de masquer des fichiers et des répertoires sous Linux

  3. Comment chiffrer et déchiffrer des fichiers/dossiers sous Linux à l'aide de GnuPG

  4. Comment fusionner deux fichiers avec AWK ?

  5. Fusionner manuellement deux fichiers à l'aide de diff

Tout sur les fichiers tar et comment tar, décompresser des fichiers sous Linux à l'aide du terminal

Comment comparer des fichiers sous Linux à l'aide de l'outil Meld (Diff/Merge)

Comment comparer deux fichiers dans un terminal Linux

Comment masquer des dossiers et des fichiers sous Linux à l'aide d'un fichier texte

Utilisation de la commande Diff pour comparer deux fichiers dans un terminal Linux

Top 4 des outils de différence de fichiers sur UNIX / Linux - Diff, Colordiff, Wdiff, Vimdiff