Ricerca nel sito web

Tutorial sui comandi Linux sdiff per principianti (8 esempi)


Su questa pagina

  1. Comando Linux sdiff
  2. D1. Come funziona il comando sdiff?
  3. Q2. Come fare in modo che sdiff ignori maiuscole e minuscole?
  4. Q3. Come fare in modo che sdiff ignori gli spazi?
  5. Q4. Come fare in modo che sdiff ignori le righe vuote?
  6. D5. Come fare in modo che sdiff sopprima le linee comuni?
  7. D6. Come fare in modo che sdiff utilizzi un diverso programma diff?
  8. D7. Come salvare l'output sdiff su file
  9. D8. Come emettere solo la colonna sinistra
  10. Conclusione

Qui a HowtoForge, abbiamo già discusso delle utilità della riga di comando incentrate sulla ricerca delle differenze tra i file. Ma ci sono molti altri strumenti di questo tipo e in questo tutorial discuteremo di uno di questi comandi denominato sdiff utilizzando alcuni esempi di facile comprensione.

Tieni presente che tutti gli esempi di comandi sdiff menzionati in questo articolo sono stati testati su Ubuntu 22.04 LTS.

Comando Linux sdiff

Il comando sdiff mostra le differenze di file in formato affiancato. Di seguito la sua sintassi:

sdiff [OPTION]... FILE1 FILE2

Ed ecco come la pagina man lo descrive:

sdiff - side-by-side merge of file differences
Side-by-side merge of differences between FILE1 and FILE2.

Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come funziona questo strumento.

Q1. Come funziona il comando sdiff?

L'utilizzo di base è semplice, tutto ciò che devi fare è eseguire il comando sdiff con i nomi dei file come argomenti. Per esempio:

sdiff file1 file2

file1 e file2 erano esattamente gli stessi nel mio caso.

Ed ecco l'output sdiff prodotto in questo caso:

Questo tipo di output significa che non c'è differenza nei file.

D2. Come fare in modo che sdiff ignori maiuscole e minuscole?

Supponiamo che file1 e file2 contengano le seguenti righe:

Il comando:

sdiff file1 file2

produce il seguente output:

La barra verticale (|) nella prima riga della seconda colonna indica che i due file sono diversi nella prima riga stessa. Tuttavia, se lo desideri, puoi forzare sdiff a ignorare maiuscole e minuscole, cosa che puoi fare usando l'opzione della riga di comando -i.

sdiff -i file1 file2

Quindi puoi vedere che l'output ora mostra che i due file sono identici, il che significa che la differenza tra maiuscole e minuscole è stata ignorata.

D3. Come fare in modo che sdiff ignori gli spazi?

Nel caso in cui uno qualsiasi dei file contenga spazi, il comando sdiff mostrerà la differenza per impostazione predefinita. Tuttavia, se lo desideri, puoi sopprimere questo comportamento utilizzando l'opzione della riga di comando -Z:

Poi ci sono molte altre opzioni relative allo spazio di cui dovresti essere a conoscenza. Ecco un elenco:

-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

D4. Come fare in modo che sdiff ignori le righe vuote?

Proprio come gli spazi, per impostazione predefinita, il comando sdiff tiene conto anche delle righe vuote. Per esempio:

Tuttavia, è possibile fare in modo che il comando ignori le righe vuote utilizzando l'opzione della riga di comando -B.

sdiff -B file1 file2

Quindi puoi vedere che il comando sdiff non ha considerato la riga vuota come una differenza in questo caso.

Q5. Come fare in modo che sdiff sopprima le linee comuni?

Supponiamo che i file contengano alcune linee comuni e desideri che il comando sdiff sopprima le linee comuni, quindi puoi farlo usando l'opzione della riga di comando -s.

sdiff -s file1 file2

D6. Come fare in modo che sdiff utilizzi un diverso programma diff?

Per impostazione predefinita, sdiff utilizza diff per eseguire il confronto. Tuttavia, se lo desideri, puoi anche sostituire diff con il programma che preferisci. Per fare ciò, usa l'opzione --diff-program che richiede il nome del programma come input.

sdiff --diff-program=[PROGRAM] file1 file2

D7. Come salvare l'output sdiff su file

L'opzione -o o --output ci consente di salvare il risultato di sdiff in un file di output. Esempio:

sdiff --output=/tmp/mydiff.txt file1 file2

D8. Come emettere solo la colonna sinistra

Con l'opzione della riga di comando -l o la sua forma estesa --left-column, ottieni solo la colonna di sinistra come risultato.

sdiff --left-column file1 file2

Conclusione

Lo strumento Sdiff offre molte funzionalità, ma la sua curva di apprendimento non è così ripida. Tutto quello che devi fare è un po' di pratica e dovresti essere a posto. Abbiamo discusso la maggior parte delle opzioni della riga di comando qui. Per ulteriori informazioni, vai alla pagina man di sdiffs.