Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Commande diff sur Linux : utilisation avec des exemples

La commande Linux diff permet de comparer deux fichiers ligne par ligne et d‘afficher la différence entre eux. Cet utilitaire de ligne de commande répertorie les modifications à apporter pour rendre les fichiers identiques.

Lisez la suite pour en savoir plus sur la commande diff et ses options à l’aide d’exemples faciles à suivre.

Commande diff sur Linux : utilisation avec des exemples

Quelle est la syntaxe de la commande diff

Voici la syntaxe de la commande diff :

diff [option] file1 file2

Lorsque l’on travaille avec diff, il est essentiel de savoir comment interpréter la sortie, qui se compose de :

Option Description
-c or --context Différences de sortie en mode contextuel
-u or --unified Différences de sortie en mode unifié (plus concis)
-i or --ignore-case Effectuer une comparaison insensible à la casse
–ignore-all-space Ignorer les espaces blancs lors de la comparaison des lignes
–brief La sortie se limite à indiquer si les fichiers sont différents, sans plus de détails.
–recursive Comparaison récursive de répertoires
-y or --side-by-side Afficher les résultats dans un format côte à côte
Les options de la commande diff de Linux

Comparer les fichiers avec la commande diff

Pour comprendre comment utiliser la commande diff, j’ai créé deux fichiers avec une liste de fruits.

Pour comparer les deux fichiers :

diff fichier1.txt fichier2.txt

La sortie :

1c1
< Pomme
---
> Pastèque
4d3
< Pastèque
5a5
> Pomme
Comparer les fichiers avec la commande diff sur Linux

1,3d0, 4a2,3 et 5a5 sont des ordres de modification. Chaque commande de modification contient les éléments suivants, de gauche à droite :

  • Le numéro de ligne ou la plage de lignes du premier fichier
  • Un caractère de changement spécial
  • Le numéro de ligne ou la plage de lignes du deuxième fichier

Le caractère de modification peut être l’un des suivants :

  • a – Ajouter les lignes
  • c – Modifier les lignes
  • d – Supprimer les lignes
  • Les lignes précédées d’un < sont des lignes du premier fichier
  • Les lignes précédées de > sont des lignes du deuxième fichier

La commande de modification est suivie des lignes complètes qui sont supprimées (<) et ajoutées au fichier (>).

Expliquons la sortie :

  • 1c1 – Remplacer (modifier) la ligne 1 du premier fichier par la ligne 1 du deuxième fichier.
    • < Pomme – La ligne du premier fichier à remplacer
    • > Pastèque – Par quoi vous devez remplacer
  • 4d3 – La quatrième ligne (4) du premier fichier doit être supprimée (d). Si ce n’est pas le cas, elle apparaîtrait à la ligne 3 du deuxième fichier
    • < Pastèque – Les contenu à supprimer (désigné par d3)
  • 5a5 – A la ligne 5 du premier fichier, vous devez ajouter (a) les lignes 5 du second fichier.
    • > Orange – Le contenu à ajouter

Comment utiliser la commande Linux diff avec des exemples

Format contextuel avec l’option -c

Lorsque le format de sortie contextuel est utilisé, la commande diff affiche plusieurs lignes de contexte autour des lignes qui diffèrent entre les fichiers.

L’option -c indique à diff de produire une sortie au format contextuel :

diff -c fichier1.txt fichier2.txt

La sortie :

*** fichier1.txt     2024-02-09 10:06:21.028281860 +0100
--- fichier2.txt        2024-02-10 09:47:00.080707442 +0100
***************
*** 1,5 ****
! Pomme
  Orange
  Banane
- Pastèque
  Poire
--- 1,5 ----
! Pastèque
  Orange
  Banane
  Poire
+ Pomme
Comparer les fichiers avec la commande diff sur Linux

La sortie commence par les noms et les horodatages des fichiers comparés, et une ou plusieurs sections décrivant les différences. Chaque section se présente comme suit :

***************
*** numéros-lignes-à-partir--fichier ****
  lignes-a-partir-fichier...
--- numéros-ligne-fichier-destination ----
  lignes-fichier-destination...
  • numéros-lignes-à-partir–fichier et numéros-ligne-fichier-destination – Les numéros de ligne ou la plage de lignes séparées par des virgules dans le premier et le second fichier, respectivement
  • A-partir-ligne-fichier et Aux-lignes-fichier-destination – Les lignes qui diffèrent et les lignes de contexte :
  • Les lignes commençant par deux espaces sont des lignes de contexte, c’est-à-dire les lignes qui sont les mêmes dans les deux fichiers
  • Les lignes commençant par le symbole moins (-) sont les lignes qui ne correspondent à rien dans le second fichier. Lignes manquantes dans le second fichier
  • Les lignes commençant par le symbole plus (+) sont les lignes qui ne correspondent à rien dans le premier fichier. Lignes manquantes dans le premier fichier
  • Les lignes commençant par le point d’exclamation (!) sont les lignes qui sont modifiées entre deux fichiers. Chaque groupe de lignes commençant par ! dans le premier fichier a une correspondance dans le second fichier

Expliquons les parties les plus importantes du résultat :

  • Dans cet exemple, nous n’avons qu’une seule section décrivant les différences
  • *** 1,5 **** et — 1,5 —- indique l’étendue des lignes du premier et du second fichier qui sont incluses dans cette section
  • Les lignes Orange, Banane, Poire sont les mêmes dans les deux fichiers. Ces lignes commencent par un double espace
  • La ligne – Pastèque du premier fichier ne correspond à rien dans le second fichier. Bien que cette ligne existe également dans le second fichier, les positions sont différentes
  • La + Pomme du second fichier ne correspond à rien dans le premier fichier
  • Ligne ! Pomme du premier fichier est modifiée entre les fichiers

Format unifié avec l’option -u

Le format de sortie unifié est une version améliorée du format contextuel et produit une sortie plus petite.

Utilisez l’option -u pour demander à diff d’imprimer la sortie dans le format unifié :

diff -u fichier1.txt fichier2.txt

La sortie :

--- fichier1.txt     2024-02-09 10:06:21.028281860 +0100
+++ fichier2.txt        2024-02-10 09:47:00.080707442 +0100
@@ -1,5 +1,5 @@
-Pomme
+Pastèque
 Orange
 Banane
-Pastèque
 Poire
+Pomme
Comment utiliser la commande Linux sur Linux

La sortie commence par les noms et les horodatages des fichiers et une ou plusieurs sections qui décrivent les différences. Chaque section se présente sous la forme suivante :

  • @@ from-file-line-numbers to-file-line-numbers @@ – Le numéro de ligne ou l’intervalle des lignes du premier et du deuxième fichier inclus dans cette section.
  • line-files – Les lignes qui diffèrent et les lignes de contexte :
  • Les lignes commençant par deux espaces sont des lignes de contexte, c’est-à-dire les lignes qui sont les mêmes dans les deux fichiers.
  • Les lignes commençant par le symbole moins (-) sont les lignes qui sont supprimées du premier fichier.
  • Les lignes commençant par le symbole plus (+) sont les lignes qui sont ajoutées au premier fichier.

Ignorer la casse avec l’option -i

Comme toutes commandes Linux, l’utilitaire diff est sensible à la casse.

Utilisez l’option -i pour ignorer la casse :

diff -ui fichier1.txt fichier2.txt
Comment utiliser la commande Linux sur Linux

L’article Commande diff sur Linux : utilisation avec des exemples est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires