Ricerca nel sito web

Esempi di comandi sdiff di Linux per principianti di Linux


In uno dei nostri articoli precedenti, abbiamo spiegato i 9 migliori strumenti di confronto e differenza (Diff) di file per i sistemi Linux. Abbiamo elencato una combinazione di strumenti da riga di comando e GUI per confrontare e trovare differenze tra i file, ciascuno con alcune caratteristiche notevoli. Un'altra utile utilità diff per Linux si chiama sdiff.

Leggi anche: Come trovare la differenza tra due directory utilizzando gli strumenti Diff e Meld

sdiff è una semplice utility da riga di comando per mostrare le differenze tra due file e unirli in modo interattivo. È facile da usare e viene fornito con opzioni di utilizzo semplici come spiegato di seguito.

La sintassi per utilizzare sdiff è la seguente.

sdiff option... file1 file2

Mostra la differenza tra due file in Linux

1. Il modo più semplice per eseguire sdiff è fornire i due nomi di file che stai tentando di confrontare. Mostrerà la differenza unita fianco a fianco come mostrato nello screenshot seguente.


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

Tratta tutti i file come file di testo

2. Per trattare tutti i file come testo e confrontarli riga per riga, indipendentemente dal fatto che siano file di testo o meno, utilizza il flag -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 tabulazioni e spazi bianchi

3. Se hai file con troppi spazi bianchi, puoi dire a sdiff di ignorare tutti gli spazi bianchi durante il confronto utilizzando l'opzione -W.

sdiff -W du.txt cal.txt

4. Puoi anche dire a sdiff di ignorare qualsiasi spazio bianco alla fine della riga utilizzando l'opzione -z.

sdiff -z du.txt cal.txt

5. Inoltre, puoi indicare a sdiff di ignorare le modifiche dovute all'espansione delle tabulazioni con il flag -E.

sdiff -E du.txt cal.txt

Ignora maiuscole e minuscole durante il confronto delle differenze

6. Per ignorare le maiuscole e minuscole (dove sdiff tratta le maiuscole e le minuscole allo stesso modo), utilizza l'opzione -i come mostrato.

sdiff -i du.txt cal.txt

Ignora le righe vuote durante il confronto delle differenze

7. L'opzione -B aiuta a ignorare la riga vuota nei file.

sdiff -B du.txt cal.txt

Definire il numero di colonne da produrre

8. sdiff ti consente di impostare il numero di colonne da stampare (il valore predefinito è 130), utilizzando -w cambia come segue.

sdiff -w 150 du.txt cal.txt

Espandi le schede in spazi

9. Per espandere le tabulazioni in spazi nell'output, utilizza l'opzione -t.

sdiff -t du.txt cal.txt

Esegui sdiff in modo interattivo

10. Il flag -o gli consente di funzionare in modo più interattivo e di inviare l'output a un file. In questo comando, l'output verrà inviato al file sdiff.txt, premi Invio dopo aver visto il segno %, per ottenere il menu interattivo .

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

Tieni presente che in questo scenario devi avere alcuni editor come ed installati sul tuo sistema prima di utilizzarli.

Richiama un altro programma per confrontare i file

11. L'opzione --diff-program ti consente di chiamare un altro strumento da riga di comando, diverso da sdiff stesso per confrontare file, ad esempio , puoi chiamare il programma diff come mostrato.

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

Per ulteriori informazioni, consultare la pagina man di sdiff.

man sdiff

In questo articolo abbiamo esaminato esempi di strumenti da riga di comando sdiff per principianti. Se hai domande, utilizza il modulo di commento qui sotto per contattarci.