Créer Diff entre deux fichiers dans Linux

Créer Diff entre deux fichiers dans Linux
Cet article répertorie les utilitaires de ligne de commande et les applications graphiques qui vous permettent d'afficher «Diff» ou «différence» entre deux chaînes ou deux fichiers. Ces applications sont particulièrement utiles si vous souhaitez comparer plusieurs versions d'un même fichier pour revoir ses progrès ou revenir à l'ancien contenu au cas où vous souhaitez réutiliser les données précédentes stockées dans le fichier. Les développeurs de logiciels utilisant une sorte de système de contrôle de version utilisent régulièrement des outils Diff pour comparer le code.

Commande grep

Grep est un outil de ligne de commande qui est le plus souvent utilisé pour trouver et faire correspondre le contenu du texte à l'aide de modèles. Vous pouvez utiliser les modèles GREP de diverses manières pour analyser les données de texte et obtenir des correspondances. Un tel modèle Grep vous permet de visualiser Diff entre deux fichiers. En supposant qu'il existe deux fichiers «file1» contenant 1 à 5 numéros sur chaque ligne et et «file2» contenant 1 à 10 numéros sur chaque ligne, vous pouvez utiliser la commande grep suivante pour afficher Diff entre ces fichiers:

$ grep -fxvf file1 file2

Après avoir exécuté la commande indiquée ci-dessus, vous devriez obtenir la sortie suivante:

6
7
8
9
dix

Le commutateur «F» dans la commande ci-dessus considère les données de texte comme une liste de chaînes fixes, chacune d'entre elles séparée par une pause de ligne ou une nouvelle ligne. Le commutateur «x» ne correspond que des lignes entières. Le commutateur «V» est utilisé pour obtenir des matchs inverses. Vous pouvez l'utiliser pour sélectionner les lignes non correspondantes. Le commutateur «F» est utilisé pour obtenir des modèles à partir d'un fichier, chaque modèle étant une nouvelle ligne. Notez que l'ordre des arguments est important lorsque vous utilisez la commande Diff énoncée ci-dessus. Il trouve ces lignes qui existent dans "File2" mais n'existent pas dans "File1". Essayez d'exécuter la commande ci-dessous en inversant l'ordre des fichiers, vous n'obtiendrez aucune sortie:

$ grep -fxvf file2 fichier1

En effet, "file1" n'a pas de lignes différentes de "file2". La commande grep est disponible par défaut dans toutes les principales distributions Linux. Pour plus d'informations sur la commande grep, utilisez les deux commandes suivantes:

$ man grep
$ grep - help

Commande diff

Diff est un utilitaire de ligne de commande de commande qui peut être utilisé pour comparer les fichiers ligne par ligne. Sa sortie fait allusion aux lignes qui devaient être ajoutées ou supprimées pour correspondre aux deux fichiers les uns avec les autres. En utilisant les mêmes fichiers mentionnés dans l'exemple ci-dessus, exécutez la commande suivante:

$ Diff Fichier2 Fichier1

Vous devriez obtenir la sortie suivante:

6,10d5
< 6
< 7
< 8
< 9
< 10

La sortie vous indique que pour faire correspondre "File2" avec File1, vous devez supprimer ("d") toutes les lignes à partir de la 6e ligne à la 10e ligne pour correspondre au deuxième fichier jusqu'à la 5e ligne du premier fichier. Essayez d'inverser la commande:

$ diff file1 fichier2

Vous devriez obtenir la sortie suivante:

5A6,10
> 6
> 7
> 8
> 9
> 10

La sortie vous indique qu'après la 5e ligne, ajoutez ("A") 6 à 10 lignes à "File1" pour le faire correspondre à "File2". Vous pouvez également faire une comparaison côte à côte en utilisant le commutateur «Y».

La commande DIFF est disponible par défaut dans la plupart des distributions Linux. Pour plus d'informations, vous pouvez exécuter ces deux commandes:

$ man diff
$ diff - help

Fondre

Meld est une application graphique qui peut être utilisée pour trouver Diff entre deux fichiers ou plus et fusionner les modifications en même temps. Il peut également être utilisé pour comparer récursivement les fichiers dans un répertoire, y compris des dossiers sous contrôle de version. Meld indique visuellement quelles modifications doivent être apportées pour correspondre à deux fichiers comparés. Il peut également afficher Diff en temps réel lorsque vous continuez à modifier un ou les deux fichiers.

Pour installer MELD dans Ubuntu, utilisez la commande spécifiée ci-dessous:

$ sudo apt install meld

MELD est disponible dans les référentiels par défaut de la plupart des distributions Linux, vous pouvez donc le télécharger à partir du gestionnaire de packages. Vous pouvez également obtenir plus de packages et de code source à partir de sa page d'accueil.

Kompare

Kompare est une application gratuite et open source qui peut être utilisée pour créer des différences entre deux fichiers et fusionner les modifications pour correspondre à leur contenu. Développé par l'équipe KDE, il peut également être utilisé pour analyser récursivement les répertoires pour comparer les différences entre les fichiers. Kompare indique visuellement Diff entre deux fichiers et vous pouvez également l'utiliser pour créer et appliquer des correctifs.

Pour installer Kompare dans Ubuntu, utilisez la commande spécifiée ci-dessous:

$ sudo apt install kompare

Kompare est disponible dans les référentiels par défaut de la plupart des distributions Linux, vous pouvez donc le télécharger à partir du gestionnaire de packages. Vous pouvez obtenir plus de packages et de code source à partir de sa page Web. Un package instantané est également disponible ici.

Commande git diff

Git est l'un des systèmes de contrôle de version distribuée les plus utilisés et les plus populaires. Il est livré avec beaucoup d'utilitaires de ligne de commande, y compris une commande «diff» qui peut être utilisée pour comparer deux fichiers. Vous pouvez utiliser cette commande pour comparer largement deux fichiers, même si vous n'utilisez pas le contrôle de version GIT et qu'il est livré avec de nombreuses options de ligne de commande pour modifier le comportement des algorithmes Diff. Dans sa forme la plus simple, vous pouvez exécuter cette commande pour comparer deux fichiers:

$ git diff file1 file2

La sortie colorée avec le panneau «+» montre des lignes supplémentaires disponibles dans «File2». Pour installer Git et Git Diff dans Ubuntu, utilisez la commande spécifiée ci-dessous:

$ sudo apt install git

Git Diff fait partie du package GIT et il est disponible dans les référentiels par défaut de la plupart des distributions Linux, vous pouvez donc le télécharger à partir du gestionnaire de packages. Pour plus d'informations sur Git Diff, utilisez les deux commandes suivantes:

$ man git diff
$ git diff - help

Kdiff3

Kdiff3 est un autre outil GUI Diff créé par l'équipe KDE. Il est livré avec toutes les cloches et les sifflets que vous attendez d'un outil Diff. Il peut comparer les fichiers et les répertoires et fusionner automatiquement les modifications si elles sont choisies. Il est également livré avec un éditeur intégré et il indique visuellement quelles modifications doivent être apportées pour correspondre aux fichiers et supprimer les différences.


(Source d'image)

Pour installer Kdiff3 dans Ubuntu, utilisez la commande spécifiée ci-dessous:

$ sudo apt install kdiff3

Kdiff3 est disponible dans les référentiels par défaut de la plupart des distributions Linux, vous pouvez donc le télécharger à partir du gestionnaire de packages. Vous pouvez obtenir plus de packages et de code source à partir de sa page Web.

Conclusion

Ce sont quelques-uns des lignes de commande et des utilitaires graphiques les plus utiles qui peuvent être utilisés pour comparer plusieurs fichiers. Ces outils Diff offrent un bon moyen de suivre les modifications des fichiers, de fusionner les différences et de créer des correctifs. Vous pouvez également les utiliser pour revenir manuellement aux fichiers à leur état antérieur si besoin se produit.