accueil > Traitement et recherche de texte > diff

diff : Comparaison des différences entre deux fichiers (Format Unifié)

La commande diff analyse et affiche les différences entre deux fichiers ou répertoires. L'option `-u` (Unified) est particulièrement utile pour examiner les modifications de code ou l'historique des changements dans les systèmes de gestion de versions, car elle présente les résultats dans un format unifié montrant les lignes modifiées ainsi que leur contexte. Ce format aide à comprendre intuitivement ce qui a été ajouté, supprimé ou modifié.

Aperçu

diff -u compare le contenu de deux fichiers et affiche les différences au format unifié. Ce format montre les lignes modifiées ainsi que quelques lignes de contexte environnantes, permettant de comprendre facilement comment les modifications ont été apportées. C'est un outil essentiel, notamment pour la gestion du code source et le suivi des modifications des fichiers de configuration.

Caractéristiques principales

  • Affichage des différences au format unifié
  • Fournit le contexte des modifications
  • Utile pour la revue de code et la gestion de versions
  • Distingue clairement les ajouts, suppressions et modifications

Options principales

La commande diff offre diverses options, mais nous allons ici décrire celles couramment utilisées avec l'option `-u`.

Format de sortie

Comportement de comparaison

Commande générée :

Essayez de combiner les commandes.

Description:

`diff` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Divers exemples d'utilisation de la commande diff -u.

Comparaison des différences entre deux fichiers au format unifié

diff -u file1.txt file2.txt

Affiche les différences entre file1.txt et file2.txt au format unifié.

Comparaison récursive des fichiers de deux répertoires

diff -ur dir1 dir2

Compare récursivement tous les fichiers dans les répertoires dir1 et dir2 et affiche le résultat au format unifié.

Comparaison de fichiers en ignorant les changements d'espaces blancs

diff -uw file1.txt file2.txt

Compare les fichiers en ignorant les changements d'espaces blancs (espaces, tabulations, etc.) et en ne considérant que les différences de contenu réelles.

Comparaison de fichiers en ignorant les lignes correspondant à un motif spécifique

diff -u -I '^#' config1.conf config2.conf

Compare les fichiers config1.conf et config2.conf en ignorant les lignes de commentaires (commençant par '#').

Sauvegarde de la sortie unifiée dans un fichier patch

diff -u old_file.txt new_file.txt > changes.patch

Affiche les différences entre deux fichiers au format unifié et enregistre le résultat dans le fichier 'changes.patch'. Ce fichier peut être appliqué avec la commande 'patch'.

Conseils et précautions

Conseils pour interpréter et utiliser efficacement la sortie de diff -u.

Interprétation de la sortie unifiée

La sortie de diff -u utilise les symboles suivants pour indiquer les modifications :

  • --- (trois tirets) : Indique le chemin et l'horodatage du fichier d'origine (old).
  • +++ (trois plus) : Indique le chemin et l'horodatage du nouveau fichier (new).
  • @@ -OLD_START,OLD_COUNT +NEW_START,NEW_COUNT @@ : L'en-tête du 'chunk', indiquant le numéro de ligne et la plage de lignes où la modification s'est produite.
  • - (un tiret) : Ligne présente uniquement dans le fichier d'origine, indiquant une ligne supprimée.
  • + (un plus) : Ligne présente uniquement dans le nouveau fichier, indiquant une ligne ajoutée.
  • (un espace) : Ligne présente dans les deux fichiers, indiquant une ligne de contexte inchangée.

Interaction avec la commande patch

La sortie générée par diff -u peut être utilisée comme entrée pour la commande `patch`. Cela permet d'appliquer facilement les modifications d'un fichier à un autre, ou de les annuler. Par exemple, après avoir créé un fichier patch avec la commande `diff -u old_file new_file > changes.patch`, vous pouvez appliquer les modifications de `changes.patch` à `old_file` pour le rendre identique à `new_file` en utilisant la commande `patch -p0 < changes.patch`.


commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.


Commandes de la même catégorie