========================================== DIFF - Guides des comparaisons de fichiers ========================================== .. contents:: :depth: 2 :local: :backlinks: top **Procédure rapide : Comparaison de fichiers avec `diff`** ---------------------------------------------------------- Cette section présente les commandes rapides pour comparer des fichiers à l'aide de `diff`. Chaque commande est d'abord présentée avec une chaîne de texte à modifier pour l'adapter à vos besoins, suivie d'un exemple concret. **Comparaison côte-à-côte avec `diff`** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Comparer deux fichiers côte à côte et supprimer les lignes communes :** .. code-block:: bash diff --side-by-side --suppress-common-lines Exemple concret : .. code-block:: bash diff --side-by-side --suppress-common-lines FILEA.txt FILEB.txt Résultat d'exemple : .. code-block:: ligne différente A < | ligne différente B ligne spécifique à FILEA.txt < > ligne spécifique à FILEB.txt Dans cet exemple, les lignes communes aux deux fichiers ne sont pas affichées. Les différences sont présentées côte à côte avec les lignes spécifiques à chaque fichier indiquées par `<` (FILEA) et `>` (FILEB). **Autres exemples de `diff` avec options** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. **Comparer deux fichiers en ignorant les espaces blancs à la fin des lignes :** .. code-block:: bash diff --ignore-trailing-space Exemple concret : .. code-block:: bash diff --ignore-trailing-space FILEA.txt FILEB.txt Cette commande ignore les différences liées aux espaces blancs présents à la fin des lignes, ce qui peut être utile si des lignes identiques présentent de légères variations dans les espaces blancs. 2. **Comparer deux fichiers en montrant uniquement les différences sous forme de contexte :** .. code-block:: bash diff --context= Exemple concret : .. code-block:: bash diff --context=3 FILEA.txt FILEB.txt Résultat d'exemple : .. code-block:: *** FILEA.txt 2023-10-07 14:00:00.000000000 +0000 --- FILEB.txt 2023-10-07 14:00:00.000000000 +0000 *************** *** 5,7 **** ligne commune - ligne différente A ligne suivante --- 5,7 ---- ligne commune + ligne différente B ligne suivante Dans cet exemple, `diff` affiche les trois lignes de contexte avant et après chaque différence. Cela permet de voir non seulement les lignes modifiées, mais aussi leur contexte. 3. **Comparer récursivement deux répertoires pour identifier les différences entre les fichiers :** .. code-block:: bash diff --recursive Exemple concret : .. code-block:: bash diff --recursive DIR_A DIR_B Cette commande compare les fichiers présents dans les deux répertoires, en affichant les différences pour chaque fichier correspondant trouvé dans les deux répertoires. 4. **Comparer deux fichiers et produire un fichier de patch pour appliquer les différences :** .. code-block:: bash diff -u > Exemple concret : .. code-block:: bash diff -u FILEA.txt FILEB.txt > diff.patch Résultat d'exemple : .. code-block:: --- FILEA.txt 2023-10-07 14:00:00.000000000 +0000 +++ FILEB.txt 2023-10-07 14:00:00.000000000 +0000 @@ -1,4 +1,4 @@ ligne commune -ligne différente A +ligne différente B ligne suivante Dans cet exemple, `diff` génère un fichier de patch au format unifié (`-u`), qui peut ensuite être appliqué à `FILEA.txt` pour le synchroniser avec `FILEB.txt` à l'aide de la commande `patch`. **Meta** -------------- Auteur : Cbillet Date : 03/11/2024