Avant de commencer, créez deux fichiers à l'aide de n'importe quel éditeur de texte (nano est utilisé dans ce tutoriel) avec le même contenu :
# nano diffsample1
Pâte intérieure :
LinuxHint publie le meilleur contenu pour vous
presse CTRL+X et Y pour enregistrer et quitter.
Créez un deuxième fichier appelé diffsample2 avec le même contenu :
# nano diffsample2
Noter: faites attention aux espaces et aux tabulations, les fichiers doivent être égaux à 100%.
presse CTRL+X et Y pour enregistrer et quitter.
# diff diffsample1 diffsample2
Comme vous pouvez le voir, il n'y a pas de sortie, pas besoin de faire quelque chose pour rendre les fichiers égaux car ils sont déjà égaux.
Modifions maintenant le fichier diffsample2 pour apporter quelques modifications :
# nano diffsample2Remplaçons ensuite le mot « contenu » par « conseils » :
presse CTRL+X et Oui pour enregistrer et quitter.
Exécutez maintenant :
# diff diffsample1 diffsample2Voyons le résultat :
La sortie ci-dessus, "3c3" signifie "La ligne 3 du premier fichier doit être remplacée par la ligne 3 du deuxième fichier". La partie conviviale de la sortie est qu'elle nous montre quel texte doit être modifié ("contenu pour vous" pour "conseils pour vous”)
Cela nous montre que la référence pour la commande diff n'est pas le premier fichier mais le deuxième, c'est pourquoi la troisième ligne du premier fichier (la première 3) doit être modifiée (C) en tant que troisième ligne du deuxième fichier (deuxième 3).
La commande diff peut afficher 3 caractères :
c : ce personnage instruit un Changer doit être fait.
une: ce caractère indique que quelque chose doit être Ajoutée.
ré: ce caractère indique que quelque chose doit être Supprimé.
Les premiers chiffres avant un caractère appartiennent au premier fichier, tandis que les chiffres après les caractères appartiennent au deuxième fichier.
Le symbole < belongs to the first file and the symbol > au deuxième fichier qui sert de référence.
Inversons l'ordre des fichiers, au lieu d'exécuter
# diff diffsample1 diffsample2Cours:
# diff diffsample2 diffsample1Vous pouvez voir comment l'ordre a été inversé et maintenant le fichier diffsample1 est utilisé comme référence, et il nous demande de changer "conseils pour vous" pour "contenu pour vous", c'était la sortie précédente :
Modifions maintenant le fichier diffsample1 comme ceci :
Supprimer toutes les lignes, à l'exception de la première ligne du fichier diffsample1. Exécutez ensuite :
# diff diffsample2 diffsample1
Comme vous pouvez le voir, puisque nous avons utilisé le fichier diffsample1 comme référence, afin de rendre le fichier diffsample2 exactement égal, nous devons supprimer (ré) lignes deux et trois (2,3) comme dans le premier fichier et les premières lignes (1) sera égal.
Inversons maintenant l'ordre et au lieu d'exécuter "# diff diffsample2 diffsample1” Cours:
# diff diffsample1 diffsample2
Comme vous pouvez le voir, alors que l'exemple précédent nous a demandé de supprimer, celui-ci nous demande d'ajouter (une) lignes 2 et 3 après le premier fichier première ligne (1).
Travaillons maintenant sur la propriété sensible à la casse de ce programme.
Modifiez le fichier diffsample2 comme :
Et éditez le fichier diffsample1 comme :
La seule différence sont les majuscules sur le fichier diffsample2. Maintenant, comparons-le à nouveau en utilisant diff :
# diff diffsample1 diffsample2
Comme vous pouvez le voir, les différences trouvées, les lettres majuscules, nous évitons de détecter les lettres majuscules, si nous ne sommes pas intéressés par la casse en ajoutant le -je option:
# diff -i diffsample1 diffsample2
Aucune différence n'a été trouvée, la détection des cas a été désactivée.
Modifions maintenant le format de sortie en ajoutant l'option -vous utilisé pour imprimer des sorties unifiées :
De plus, pour la date et l'heure, la sortie s'affiche avec un - et + symbole ce qui doit être supprimé et ce qui doit être ajouté afin de rendre les fichiers égaux.
Au début de cet article, j'ai dit que les espaces et les tabulations doivent être égaux dans les deux fichiers, car ils sont également détectés par la commande diff, si nous voulons que la commande diff ignore les espaces et les tabulations, nous devons appliquer le -w option.
Ouvrez le fichier diffsample2 et ajoutez des espaces et des tabulations :
Comme vous le voyez, j'ai ajouté quelques onglets après « le meilleur » dans la deuxième ligne ainsi que des espaces dans toutes les lignes, fermez, enregistrez le fichier et exécutez :
# diff diffsample1 diffsample2
Comme vous pouvez le voir, des différences ont été trouvées, en plus des lettres majuscules. Appliquons maintenant l'option -w pour demander à diff d'ignorer les espaces vides :
Comme vous le voyez malgré la tabulation diff ne trouve comme différence que les majuscules.
Ajoutons maintenant l'option -i à nouveau :
La commande diff a des dizaines d'options disponibles à appliquer pour ignorer, modifier la sortie, discriminer les colonnes lorsqu'elles sont présentes, etc. Vous pouvez obtenir des informations supplémentaires sur ces options en utilisant la commande man, ou sur http://man7.org/linux/man-pages/man1/diff.1.html. J'espère que vous avez trouvé cet article avec des exemples de commandes diff sous Linux utile. Continuez à suivre LinuxHint pour plus de conseils et de mises à jour sur Linux et les réseaux.