Comment utiliser les fichiers Diff sous Linux

Comment utiliser les fichiers Diff sous Linux

Diff est un outil de ligne de commande pour les systèmes Unix qui vous permet de comparer deux fichiers ou répertoires et de voir les différences entre eux. C’est idéal pour comparer les anciennes et les nouvelles versions de fichiers pour voir ce qui a changé. Dans cet article, nous vous montrons comment diffcomparer facilement des fichiers sous Linux.

Comparer des fichiers avec diff

  • Ouvrez une fenêtre de terminal.
  • Tapez diffet les chemins d’accès aux deux fichiers que vous souhaitez comparer. Dans ce cas, je compare deux petits programmes C sur mon bureau en utilisant la commande suivante :

diff ~/Desktop/hello.c ~/Desktop/hello-1.c

Une fenêtre de terminal affichant une commande diff.
  • Appuyez sur Enterpour soumettre la commande. L’affichage résultant vous montrera toutes les différentes lignes entre les fichiers. Les numéros de ligne comparés seront affichés sous la forme « 1c1 », ce qui signifie que la première ligne a été modifiée et que les différences suivantes ont été trouvées.
Une fenêtre de terminal affichant la sortie d'une commande diff.
  • Pour voir une vue côte à côte des fichiers et de leurs différences, utilisez le -ydrapeau après diff. Par exemple:

diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c

Une fenêtre de terminal affichant une commande qui imprimera un diff visuel.

Toute ligne avec un symbole pipe ( |) est une ligne avec une différence. Assurez-vous simplement de développer d’abord la fenêtre de votre terminal, sinon vous aurez peut-être du mal à voir l’affichage.

Une fenêtre de terminal affichant la sortie d'une commande visual diff.

Comparer des fichiers avec Meld

La fonctionnalité de diffpeut également être accessible via Meld , une interface graphique pour diff. Considérant que l’interface utilisateur de diff peut être difficile à maîtriser, Meld est un outil utile.

  • Installez Meld à partir de la ligne de commande en ouvrant le terminal et en tapant :

sudo apt -y install meld

ou

sudo dnf -y install meld

pour les distributions basées sur RPM.

Cela initialisera le gestionnaire de paquets apt et commencera l’installation de Meld. Notez que le -ydrapeau dira automatiquement « oui » à toutes les invites ; veuillez le supprimer si vous préférez confirmer ces invites manuellement.

Une fenêtre de terminal affichant la commande d'installation de Meld.
  • Entrez votre mot de passe administrateur lorsque vous y êtes invité. Lorsque vous voyez à nouveau l’invite de commande, l’installation est terminée et Meld peut être ouvert.
Une fenêtre de terminal montrant le processus d'installation de Meld.
  • Lorsque vous ouvrez Meld, vous verrez trois options : Comparaison de fichiers, Comparaison de répertoires et Vue de contrôle de version. Cliquez sur « Fichier ».
Une capture d'écran de l'écran d'accueil de Meld.
  • Deux menus déroulants apparaîtront, tous deux lisant « (Aucun) ». Cliquez sur l’un d’entre eux pour sélectionner un fichier à comparer.
Une capture d'écran de l'écran Meld avec une surbrillance sur le premier sélecteur de fichiers.
  • Cliquez sur l’autre menu déroulant pour sélectionner un deuxième fichier à comparer.
Une capture d'écran de l'écran Meld avec une surbrillance sur le deuxième sélecteur de fichiers.
  • Cliquez sur le bouton « Comparer ».
Une capture d'écran de l'écran Meld avec une surbrillance sur le bouton Comparer.
  • La fenêtre suivante récapitule toutes les différences trouvées entre deux fichiers. Les caractères rouges sont des différences et le fond bleu indique qu’il y a une différence dans cette ligne. Un fond vert indique qu’une ligne existe dans un fichier mais pas dans l’autre.
Une capture d'écran du programme Meld avec une simple vue de comparaison de deux fichiers.
  • Pour naviguer entre les différences, cliquez sur les boutons haut et bas dans la barre de menus. Vous pouvez également cliquer directement dans le document avec votre souris.
Une capture d'écran du programme Meld mettant en évidence son bouton de navigation diff.

Manipulation de fichiers dans Meld

En plus de faire des comparaisons, Meld vous permet de modifier les fichiers comparés. Meld continuera à analyser le document à la recherche de modifications au fur et à mesure que vous modifiez l’une ou l’autre version, et vous pouvez appuyer sur Ctrl+ Zà tout moment pour annuler les modifications.

  • Pour copier les modifications d’un fichier à un autre, cliquez sur les petites flèches noires entre les modifications. Cliquer sur la flèche sur le côté gauche, par exemple, utilisera la ligne du document de gauche pour écraser le document de droite.
Une capture d'écran du programme Meld montrant les boutons de résolution de diff.
  • Des lignes peuvent également être insérées dans des documents sans les écraser. Si vous maintenez la Ctrltouche enfoncée, vous verrez les flèches de la dernière étape se transformer en signes plus. Cliquez sur l’icône pour ouvrir une petite boîte de dialogue dans laquelle vous pouvez choisir où insérer une nouvelle ligne.
Une capture d'écran du programme Meld montrant son invite d'ajout de diff.
  • Enfin, tapez directement dans votre document. Insérez simplement votre curseur comme vous le feriez normalement et commencez à taper.
  • Une fois que vous avez terminé d’apporter des modifications, cliquez sur le bouton « Enregistrer » pour enregistrer vos fichiers.
Une capture d'écran du programme Meld mettant en évidence son bouton de sauvegarde par fichier.

Création de fichiers diff à l’aide de Meld et diff

En plus de montrer les différences entre deux fichiers, vous pouvez également utiliser Meld pour créer des « fichiers diff ». Ce sont de petits morceaux de texte qui contiennent des instructions sur la façon d’appliquer les modifications d’une version de fichier à une autre. Ceci est utile si vous souhaitez distribuer rapidement des mises à jour de code sans partager l’intégralité de l’archive source.

  • Ouvrez les deux fichiers que vous souhaitez comparer.
Une capture d'écran du programme Meld montrant un simple diff.
  • Cliquez sur le menu Options dans le coin supérieur droit de la fenêtre.
Une capture d'écran mettant en évidence le bouton d'options de Meld.
  • Sélectionnez le sous-menu « Comparaison ».
Une capture d'écran du menu des options de Meld avec une surbrillance dans le sous-menu Comparaison.
  • Cliquez sur la sous-option « Formater en tant que patch ».
Une capture d'écran du sous-menu Comparaison avec une surbrillance sur la sous-option Format.
  • Cela ouvrira une petite fenêtre où Meld imprimera l’intégralité du fichier diff entre vos deux fichiers. À ce stade, vous pouvez soit copier ce texte dans votre presse-papiers, soit l’enregistrer dans un fichier. Pour ce faire, cliquez sur le bouton « Enregistrer le patch ».
Une capture d'écran de la sous-fenêtre Meld's Patch avec une surbrillance sur la

Bien que la création de fichiers diff dans Meld soit simple et directe, il existe des cas où il peut ne pas être possible d’accéder à une interface graphique lors de l’édition de code. Pour cela, vous pouvez également utiliser le diffprogramme pour générer un fichier diff.

  • Ouvrez un terminal et vérifiez s’il y a des différences entre les deux fichiers :

diff hello.c hello-1.c

Un terminal montrant un simple diff entre deux fichiers.
  • Créez un fichier diff simple en utilisant l’ -cindicateur :

diff -c hello.c hello-1.c > hello.diff

Un terminal affichant une sortie de fichier diff de base.
  • En option, utilisez l’ -uoption qui combine les deux flux de texte en un seul bloc diff unifié. Cela peut être utile si vous modifiez beaucoup de code et souhaitez économiser de l’espace disque :

diff -u hello.c hello-1.c > hello.diff

Un terminal montrant une sortie diff unifiée plus complexe.

Utilisation de fichiers diff pour patcher le code source

Comme indiqué ci-dessus, un fichier diff vous permet de créer un résumé facilement partageable des modifications apportées à votre code source. Cependant, diff lui-même ne peut pas les appliquer aux fichiers existants. Pour ce faire, utilisez le programme compagnon de diff, patch.

  • Déterminez le code source d’origine que le fichier diff tente de modifier :

cat hello.diff | sed 1q

Un terminal affichant l'en-tête du fichier source d'origine.
  • Créez une sauvegarde de votre code source d’origine :

cp hello.c hello.c.old

  • Exécutez le programme patch avec le fichier d’origine sur le premier argument et le fichier diff sur le second :

patch hello.c hello.diff

Un terminal affichant une simple commande de patch vers un seul fichier source.

Il est important de noter qu’un fichier diff peut également contenir des modifications qui s’étendent sur plusieurs fichiers. Appliquez ceci en plaçant tous les fichiers nécessaires à la mise à jour dans un seul répertoire et en exécutant patch < multi-file.diff.

  • Vérifiez si le programme correctif a réussi à mettre à jour votre fichier source en le comparant à votre sauvegarde :

diff -y hello.c hello.c.old

Un terminal affichant la différence visuelle entre le nouveau fichier source et le fichier source d'origine.

Pour votre information : Git est un puissant programme de contrôle de version multiplateforme. Découvrez comment vous pouvez l’utiliser pour gérer vos référentiels de code source sous Linux.

Questions fréquemment posées

Est-il possible de patcher un fichier plusieurs fois ?

Oui. Cependant, il est important de noter que la valeur du numéro de ligne dans un fichier diff est statique. Par exemple, appliquer un diff qui ajoute cinq lignes de code sur la ligne 1 ajustera le fichier entier de cinq lignes. Alors que les outils modernes peuvent compenser les changements à partir de différences uniques, en appliquer plusieurs peut créer des conflits de code inutiles.

Un fichier diff est-il similaire à un correctif Git ?

Oui. Diff et Git utilisent tous deux un type de format similaire pour leurs correctifs de code. Par conséquent, vous pouvez échanger les deux utilitaires lors de l’application de mises à jour à votre code source. Par exemple, courir git apply hello.difféquivaut à courir patch < hello.diff.

Pouvez-vous utiliser Meld avec un programme de contrôle de version tel que Git ?

Oui. L’une des fonctionnalités les plus puissantes de Meld est qu’il peut fonctionner de manière transparente avec n’importe quel programme de contrôle de version. Cela vous donne la possibilité d’interagir facilement avec vos référentiels en dehors de l’interface du terminal.

Pour cela, appuyez sur Ctrl+ N, puis cliquez sur le bouton « Vue de contrôle de version ». Ensuite, cliquez sur la liste déroulante en dessous et sélectionnez « Autre ». Cela fera apparaître une petite fenêtre où vous pourrez voir et charger votre référentiel Git.

Crédit image : Unsplash . Toutes les captures d’écran par Ramces Red.

Laisser un commentaire

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