Ici, à HowtoForge, nous avons déjà discuté de plusieurs utilitaires de ligne de commande qui se concentrent sur la recherche de différences de fichiers. Mais il existe plusieurs autres outils de ce type, et dans ce didacticiel, nous discuterons de cette commande appelée sdiff en utilisant des exemples faciles à comprendre.
Veuillez noter que tous les exemples mentionnés dans cet article ont été testés sur Ubuntu 16.04 LTS.
Commande Linux sdiff
La commande sdiff vous montre les différences de fichiers sous forme côte à côte. Voici sa syntaxe :
sdiff [OPTION]... FILE1 FILE2
Et voici comment la page de manuel le décrit :
sdiff - side-by-side merge of file differences
Side-by-side merge of differences between FILE1 and FILE2.
Voici quelques exemples sous forme de questions-réponses qui devraient vous donner une bonne idée du fonctionnement de cet outil.
Q1. Comment fonctionne la commande sdiff ?
L'utilisation de base est simple, tout ce que vous avez à faire est d'exécuter la commande sdiff avec les noms de fichiers comme arguments. Par exemple :
sdiff file1 file2
file1 et file2 étaient exactement les mêmes dans mon cas.
Et voici la sortie sdiff produite dans ce cas :
Ce type de sortie signifie qu'il n'y a aucune différence dans les fichiers.
Q2. Comment faire en sorte que sdiff ignore la casse ?
Supposons que file1 et file2 contiennent les lignes suivantes :
La commande :
sdiff fichier1 fichier2
produit la sortie suivante :
Le tube (|) dans la première ligne de la deuxième colonne indique que les deux fichiers sont différents dans la toute première ligne elle-même. Cependant, si vous le souhaitez, vous pouvez forcer sdiff à ignorer la casse, ce que vous pouvez faire en utilisant l'option de ligne de commande -i.
sdiff -i fichier1 fichier2
Ainsi, vous pouvez voir que la sortie montre maintenant que les deux fichiers sont identiques, ce qui signifie que la différence de casse a été ignorée.
Q3. Comment faire en sorte que sdiff ignore les espaces ?
Si l'un des fichiers contient des espaces, la commande sdiff affichera la différence par défaut. Cependant, si vous le souhaitez, vous pouvez supprimer ce comportement à l'aide de l'option de ligne de commande -Z :
Ensuite, il existe plusieurs autres options liées à l'espace que vous devez connaître. Voici une liste :
-E, --ignore-tab-expansion
ignore changes due to tab expansion
-b, --ignore-space-change
ignore changes in the amount of white space
-W, --ignore-all-space
ignore all white space
Q4. Comment faire en sorte que sdiff ignore les lignes vides ?
Tout comme les espaces, par défaut, la commande sdiff prend également en compte les lignes vides. Par exemple :
Cependant, vous pouvez faire en sorte que la commande ignore les lignes vides en utilisant l'option de ligne de commande -B.
sdiff -B fichier1 fichier2
Vous pouvez donc voir que la commande sdiff n'a pas considéré la ligne vide comme une différence dans ce cas.
Q5. Comment faire en sorte que sdiff supprime les lignes communes ?
Supposons que les fichiers contiennent des lignes communes et que vous souhaitiez que la commande sdiff supprime les lignes communes, vous pouvez le faire en utilisant l'option de ligne de commande -s.
sdiff -s fichier1 fichier2
Q6. Comment faire en sorte que sdiff utilise un autre programme diff ?
Par défaut, sdiff utilise diff pour effectuer la comparaison. Cependant, si vous le souhaitez, vous pouvez même remplacer diff par le programme de votre choix. Pour ce faire, utilisez l'option --diff-program qui nécessite le nom du programme en entrée.
sdiff --diff-program=[PROGRAM] file1 file2
Conclusion
L'outil Sdiff peut offrir de nombreuses fonctionnalités, mais sa courbe d'apprentissage n'est pas si abrupte. Tout ce que vous avez à faire est un peu de pratique et vous devriez être prêt à partir. Nous avons discuté de la majorité des options de ligne de commande ici. Pour en savoir plus, rendez-vous sur la page de manuel de sdiff.