Recherche de site Web

Exemples de commandes Linux sdiff pour les débutants Linux


Dans l’un de nos articles précédents, nous avons expliqué les 9 meilleurs outils de comparaison et de différence (Diff) de fichiers pour les systèmes Linux. Nous avons répertorié un mélange d'outils de ligne de commande et d'interface graphique pour comparer et trouver des différences entre les fichiers, chacun possédant certaines fonctionnalités remarquables. Un autre utilitaire de comparaison utile pour Linux s'appelle sdiff.

Lire aussi : Comment trouver la différence entre deux répertoires à l'aide des outils Diff et Meld

sdiff est un simple utilitaire de ligne de commande permettant d'afficher les différences entre deux fichiers et de les fusionner de manière interactive. Il est facile à utiliser et propose des options d’utilisation simples, comme expliqué ci-dessous.

La syntaxe d'utilisation de sdiff est la suivante.

sdiff option... file1 file2

Afficher la différence entre deux fichiers sous Linux

1. La manière la plus simple d'exécuter sdiff est de fournir les deux noms de fichiers que vous essayez de comparer. Il affichera la différence fusionnée côte à côte, comme indiqué dans la capture d'écran suivante.


cal >cal.txt
df -h >du.txt
sdiff du.txt cal.txt

Traiter tous les fichiers comme des fichiers texte

2. Pour traiter tous les fichiers comme du texte et les comparer ligne par ligne, qu'il s'agisse de fichiers texte ou non, utilisez l'indicateur -a.

sdiff -a du.txt cal.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <

Ignorer les onglets et les espaces blancs

3. Si vous avez des fichiers avec trop d'espaces, vous pouvez demander à sdiff d'ignorer tous les espaces blancs lors de la comparaison en utilisant le commutateur -W.

sdiff -W du.txt cal.txt

4. Vous pouvez également demander à sdiff d'ignorer tout espace blanc à la fin de la ligne en utilisant l'option -z.

sdiff -z du.txt cal.txt

5. De plus, vous pouvez demander à sdiff d'ignorer les modifications dues à l'expansion des tabulations avec l'indicateur -E.

sdiff -E du.txt cal.txt

Ignorer la casse lors de la comparaison des différences

6. Pour ignorer la casse (où sdiff traite les majuscules et les minuscules de la même manière), utilisez l'option -i comme indiqué.

sdiff -i du.txt cal.txt

Ignorer les lignes vides lors de la comparaison des différences

7. L'option -B permet d'ignorer les lignes vides dans les fichiers.

sdiff -B du.txt cal.txt

Définir le nombre de colonnes à afficher

8. sdiff vous permet de définir le nombre de colonnes à imprimer (la valeur par défaut est 130), en utilisant le -w changez comme suit.

sdiff -w 150 du.txt cal.txt

Développer les onglets vers les espaces

9. Pour étendre les tabulations en espaces dans la sortie, utilisez l'option -t.

sdiff -t du.txt cal.txt

Exécuter sdiff de manière interactive

10. L'indicateur -o lui permet de s'exécuter de manière plus interactive et d'envoyer la sortie vers un fichier. Dans cette commande, la sortie sera envoyée au fichier sdiff.txt, appuyez sur Entrée après avoir vu le signe %, pour obtenir le menu interactif .

sdiff du.txt cal.txt -o sdiff.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <
% 
ed:	Edit then use both versions, each decorated with a header.
eb:	Edit then use both versions.
el or e1:	Edit then use the left version.
er or e2:	Edit then use the right version.
e:	Discard both versions then edit a new one.
l or 1:	Use the left version.
r or 2:	Use the right version.
s:	Silently include common lines.
v:	Verbosely include common lines.
q:	Quit.
%

Notez que certains éditeurs tels que ed doivent être installés sur votre système avant de les utiliser, dans ce scénario.

Appeler un autre programme pour comparer des fichiers

11. Le commutateur --diff-program vous permet d'appeler un autre outil de ligne de commande, autre que sdiff lui-même pour comparer des fichiers, par exemple , vous pouvez appeler le programme diff comme indiqué.

sdiff --diff-program=diff du.txt cal.txt

Pour plus d’informations, consultez la page de manuel sdiff.

man sdiff

Dans cet article, nous avons examiné des exemples d'outils de ligne de commande sdiff pour les débutants. Si vous avez des questions, utilisez le formulaire de commentaires ci-dessous pour nous contacter.