Exemples de comandaments sdiff de Linux per a principiants de Linux


En un dels nostres articles anteriors, hem explicat les 9 millors eines de comparació i diferència de fitxers (Diff) per a sistemes Linux. Hem enumerat una combinació d'eines de línia d'ordres i GUI per comparar i trobar diferències entre fitxers, cadascun amb certes característiques notables. Una altra utilitat de diferenciació útil per a Linux s'anomena sdiff.

sdiff és una senzilla utilitat de línia d'ordres per mostrar les diferències entre dos fitxers i combinar-los de manera interactiva. És fàcil d'utilitzar i inclou opcions d'ús senzilles, tal com s'explica a continuació.

La sintaxi per utilitzar sdiff és la següent.

$ sdiff option... file1 file2

Mostra la diferència entre dos fitxers a Linux

1. La manera més senzilla d'executar sdiff és proporcionar els dos noms de fitxer que esteu intentant comparar. Mostrarà la diferència combinada una al costat de l'altra, tal com es mostra a la captura de pantalla següent.

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

Tracta tots els fitxers com a fitxers de text

2. Per tractar tots els fitxers com a text i comparar-los línia per línia, tant si són fitxers de text com si no, utilitzeu la marca -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	      <

Ignora les pestanyes i els espais en blanc

3. Si teniu fitxers amb massa espais en blanc, podeu dir a sdiff que ignori tots els espais en blanc mentre compareu utilitzant l'interruptor -W.

$ sdiff -W du.txt cal.txt

4. També podeu dir a sdiff que ignori qualsevol espai en blanc al final de la línia utilitzant l'opció -z.

$ sdiff -z du.txt cal.txt

5. A més, podeu indicar a sdiff que ignori els canvis a causa de l'expansió de la pestanya amb el senyalador -E.

$ sdiff -E du.txt cal.txt

Ignoreu majúscules i minúscules mentre compareu la diferència

6. Per ignorar majúscules (on sdiff tracta les majúscules i les minúscules com el mateix), utilitzeu l'opció -i com es mostra.

$ sdiff -i du.txt cal.txt

Ignoreu les línies en blanc mentre compareu la diferència

7. L'opció -B ajuda a ignorar la línia en blanc als fitxers.

$ sdiff -B du.txt cal.txt

Definiu el nombre de columnes a sortir

8. sdiff us permet establir el nombre de columnes que s'han d'imprimir (el valor per defecte és 130), utilitzant el commutador -w de la manera següent.

$ sdiff -w 150 du.txt cal.txt

Amplieu les pestanyes a espais

9. Per expandir les pestanyes a espais a la sortida, utilitzeu l'opció -t.

$ sdiff -t du.txt cal.txt

Executeu sdiff de manera interactiva

10. El senyalador -o li permet executar-se de manera més interactiva i enviar la sortida a un fitxer. En aquesta ordre, la sortida s'enviarà al fitxer sdiff.txt, premeu Intro després de veure el signe % per obtenir el menú interactiu.

$ 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.
%

Tingueu en compte que heu de tenir alguns dels editors, com ara ed, instal·lats al vostre sistema abans d'utilitzar-los, en aquest escenari.

Invoqueu un altre programa per comparar fitxers

11. L'interruptor --diff-program us permet trucar a una altra eina de línia d'ordres, que no sigui el mateix sdiff per comparar fitxers, per exemple, podeu trucar al programa diff tal com es mostra.

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

Per a més informació, consulteu la pàgina man de sdiff.

$ man sdiff

En aquest article, vam mirar exemples d'eines de línia d'ordres sdiff per a principiants. Si teniu cap pregunta, utilitzeu el formulari de comentaris a continuació per contactar amb nosaltres.