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.