Commande Linux diff3

Linux 命令大全Référence des commandes Linux


Qu'est-ce que la commande diff3 ?

diff3 est un utilitaire du système Linux utilisé pour comparer les différences entre trois fichiers. Il peut analyser trois versions différentes de fichiers, trouver les différences entre elles et afficher ces différences de manière claire.

Contrairement à la commande diff standard (qui ne peut comparer que deux fichiers), diff3 est spécialement conçu pour comparer trois fichiers, et est particulièrement adapté aux situations suivantes :

  • Fusion à trois voies dans les systèmes de gestion de versions
  • Analyse des différences après modification collaborative du même fichier par plusieurs personnes
  • Comparer le fichier original, vos modifications et les modifications des autres

Format de syntaxe de base

diff3 [选项] 我的文件 原始文件 他人文件

Description des paramètres

  1. Mon fichier: Contient la version que vous avez modifiée
  2. Fichier original: La version de base avant modification
  3. Fichier d'une autre personne: La version modifiée par quelqu'un d'autre

Paramètres d'options courants

Option Description
-a Comparer tous les fichiers comme des fichiers texte
-A Afficher tous les conflits, en affichant les différences avec des marqueurs de conflit
-e Générer un script d'édition adapté à l'éditeur ed
-E Similaire à-A, mais affiche les conflits avec moins de marqueurs
-3 Afficher uniquement les parties où les trois fichiers diffèrent
-x Similaire à-3, mais le format d'affichage est différent
-m Fusionner les résultats de sortie, en marquant les sections de conflit
-L label Sortie en utilisant les libellés spécifiés au lieu des noms de fichiers

Explication du format de sortie

La sortie de diff3 contient les parties clés suivantes :

  1. **====** : Sépare les différentes sections de comparaison
  2. 1:n: Représente la ligne n du premier fichier
  3. 2:n: Représente la ligne n du deuxième fichier (fichier d'origine)
  4. 3:n: Représente la ligne n du troisième fichier
  5. a: Ajouter (append)
  6. c: Modification

Exemples d’application pratique

Exemple 1 : comparaison simple

Supposons qu'il y ait trois fichiers :

  • original.txt (fichier original)
  • my_version.txt (ma modification)
  • their_version.txt (modification des autres)

Exemple

diff3 my_version.txt original.txt their_version.txt

La sortie peut ressembler à :

====1
1:1,2c
  这是我的修改
2:1,2c
  这是原始内容
3:1,2c
  这是他人的修改

Exemple 2 : sortie fusionnée

Exemple

diff3 -m my_version.txt original.txt their_version.txt

La sortie fusionnée marque les sections en conflit, ce qui facilite la résolution manuelle des conflits.


Cas d'utilisation typiques

Scénario 1 : résolution des conflits de version

Lorsque plusieurs personnes modifient le même fichier, l'utilisation de diff3 vous permet de voir clairement :

  1. Ce qu'est le contenu d'origine
  2. Ce que vous avez modifié
  3. Ce que les autres ont modifié

Scénario 2 : Fusion automatisée

Combiné avec-Aou-Eoption, vous pouvez générer un fichier contenant des marqueurs de fusion pour un traitement ultérieur :

Exemple

diff3 -A my.txt original.txt their.txt > merged.txt

Scénario 3 : Génération de scripts d'édition

Utilisation-eoption peut générer un script pour l'éditeur ed permettant de réaliser une modification automatisée :

Exemple

diff3 -e my.txt original.txt their.txt > edit_script.ed

Exercices pratiques

Exercice 1 : Créer des fichiers de test

Créez le fichier originalbase.txt:

Exemple

echo "Contenu original" > base.txt

Créez votre version modifiéemy.txt:

Exemple

echo "Ma modification" > my.txt

Créez la version modifiée de quelqu'un d'autretheir.txt:

Exemple

echo "Modification des autres" > their.txt

Exercice 2 : Effectuer une comparaison

Exemple

diff3 my.txt base.txt their.txt

Observez la sortie et comprenez la signification de chaque partie.

Exercice 3 : Essayez de fusionner

Exemple

diff3 -m my.txt base.txt their.txt > merged.txt
cat merged.txt

Afficher le contenu du fichier fusionné et comprendre les marqueurs de conflit.


FAQ

Q1 : Quelle est la différence entre diff3 et diff ?

diff ne peut comparer que deux fichiers, tandis que diff3 est spécialement conçu pour comparer trois fichiers, ce qui le rend particulièrement adapté à la résolution des conflits de fusion.

Q2 : Comment résoudre les conflits affichés par diff3 ?

Les sections de conflit sont clairement marquées, et vous pouvez :

  1. Modifier manuellement le fichier et choisir la modification appropriée
  2. Utiliser la fonctionnalité de fusion des outils de gestion de versions (comme git)

Q3 : diff3 peut-il comparer des fichiers binaires ?

Par défaut, diff3 traite l'entrée comme des fichiers texte. L'utilisation de-al'option peut forcer la comparaison de fichiers binaires, mais le résultat peut être difficile à comprendre.


Astuces avancées

  1. Combiner avec la gestion de versions: Dans les systèmes de gestion de versions comme Git, le format diff3 est souvent utilisé comme format d'affichage des conflits de fusion
  2. Étiquettes personnalisées: Utilisez-Loption permettant de spécifier des libellés plus significatifs pour chaque fichier
  3. Automatisation par script: Rediriger la sortie de diff3 vers un fichier, puis traiter le résultat avec un script

Exemple

diff3 -L "Ma version" -L "Version originale" -L "Version des autres" my.txt base.txt their.txt

Après avoir étudié cet article, vous devriez maîtriser l'utilisation essentielle de la commande diff3. Cet outil est très utile dans les scénarios impliquant une collaboration multipersonnelle et une fusion de versions. Il vous aide à comprendre clairement les différences entre les versions, ce qui vous permet de résoudre les conflits plus efficacement.

Linux 命令大全Référence des commandes Linux

Autres extensions