Commandes Linux

Exemples de commandes diff sous Linux

Exemples de commandes diff sous Linux
La commande diff est une commande d'analyse ou informative qui imprime les différences entre les fichiers, les analysant ligne par ligne, ou les répertoires de manière récursive tout en informant l'utilisateur des modifications nécessaires pour que les fichiers soient égaux, ce point est important pour comprendre les sorties diff. Ce tutoriel se concentre sur la commande diff.

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 diffsample2

Remplaçons ensuite le mot « contenu » par « conseils » :

presse CTRL+X et Oui pour enregistrer et quitter.

Exécutez maintenant :

# diff diffsample1 diffsample2

Voyons 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 diffsample2

Cours:

# diff diffsample2 diffsample1

Vous 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 () 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 :

#diff  -wi diffsample2 diffsample1

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.

Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...