Question 1Dans la sortie au format unifié de diff, quel symbole commence une ligne supprimée (qui était dans l'ancien fichier) ?
Différences entre fichiers — diff
Découvre comment vérifier les différences entre deux fichiers avec diff. Tu liras quelles lignes ont été ajoutées, supprimées ou modifiées, à l'aide de schémas et d'un terminal interactif directement dans ton navigateur.
Quand utiliser diff
Utilise-le quand tu veux vérifier ce que tu as changé après avoir édité un fichier, ou si deux fichiers ont le même contenu. Donne-lui deux fichiers et il n'affiche que les lignes qui diffèrent.
Comparer deux fichiers — diff
diff compare deux fichiers et n'affiche que les parties qui diffèrent. Tu l'utilises sous la forme diff old.txt new.txt, en traitant le premier fichier comme la version ancienne (avant) et le second comme la version nouvelle (après). Les lignes identiques ne sont pas affichées — seules les différences sont signalées.
diff old.txt new.txt aligne les deux fichiers et n'affiche que la deuxième ligne différente, sous la forme -banana (ancien) et +grape (nouveau). Les apple et cherry identiques ne sont pas affichés.Dans le terminal du navigateur, diff affiche les différences au format unifié (unified format). Les --- et +++ en tête sont les noms des deux fichiers comparés, la ligne @@ indique où le changement s'est produit, et dans le corps chaque ligne supprimée commence par - et chaque ligne ajoutée par +. Les lignes inchangées commencent par une espace et apparaissent à côté comme contexte.
| Symbole | Signification |
|---|---|
--- old.txt | Nom du premier fichier (ancien) comparé |
+++ new.txt | Nom du second fichier (nouveau) comparé |
@@ -N,M +N,M @@ | Information de position : où le changement s'est produit |
- ligne | Une ligne supprimée (présente dans l'ancien fichier) |
+ ligne | Une ligne ajoutée (présente dans le nouveau fichier) |
ligne (espace au début) | Une ligne inchangée affichée à côté comme contexte |
@@ indique la position du changement, - une ligne supprimée (ancien) et + une ligne ajoutée (nouveau). Les lignes inchangées apparaissent à côté avec une espace au début.printf 'apple\nbanana\ncherry\n' > old.txt # crée l'échantillon
printf 'apple\ngrape\ncherry\n' > new.txt # un échantillon qui diffère d'une ligne
diff old.txt new.txt
--- old.txt
+++ new.txt
@@ -1,3 +1,3 @@
apple
-banana
+grape
cherry
Lire les ajouts et les suppressions
Les différences ne sont pas seulement des réécritures. Quand une ligne est ajoutée uniquement dans le fichier de droite, tu obtiens seulement une ligne + ; quand une ligne est supprimée du fichier de gauche, tu obtiens seulement une ligne -. Au lieu d'avoir - et + en paire comme dans une réécriture, n'avoir que l'un des deux est le signe d'un ajout ou d'une suppression. Inverse l'ordre dans lequel tu compares, et la même différence bascule entre + (ajouté) et - (supprimé).
printf 'one\ntwo\n' > base.txt # crée l'échantillon
printf 'one\ntwo\nthree\n' > more.txt # un échantillon avec une ligne ajoutée
diff base.txt more.txt
--- base.txt
+++ more.txt
@@ -1,2 +1,3 @@
one
two
+three
diff base.txt more.txt affiche +three (ajouté), tandis que l'ordre inversé diff more.txt base.txt affiche -three (supprimé).diff et patch, et l'affichage dans d'autres environnements
Le diff au format unifié que produit diff peut être appliqué tel quel à un autre fichier avec la commande patch. Quand une équipe échange des corrections, se passer ce diff (un patch) est courant. Ce cours se concentre sur la lecture des diffs et ne couvre pas leur application ici.
Dans le terminal navigateur de ce cours, diff produit directement le format unifié. Avec le GNU diff sur Ubuntu et similaires, un diff simple affiche le format traditionnel utilisant 2c2 et < / >, et ajouter diff -u donne le même format unifié que celui utilisé dans ce cours.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Que montre une ligne comme @@ -1,3 +1,3 @@ ?
Question 3Quand une ligne est ajoutée uniquement dans le fichier de droite, à quoi ressemble la sortie de diff ?