Questa guida ti mostrerà come usare Linux per confrontare due file e mostrare la loro differenza sullo schermo o su un file.
Non è necessario installare alcun software speciale per confrontare i file utilizzando Linux, ma è necessario sapere come aprire una finestra di terminale.
Come mostra la guida collegata, ci sono molti modi per aprire una finestra di terminale usando Linux. Il più semplice è premere i tasti CTRL, ALT e T contemporaneamente.
Creare i file da confrontare
Per seguire questa guida, crea un file chiamato "file1" e inserisci il seguente testo:
10 bottiglie verdi in piedi su un muro
10 bottiglie verdi in piedi su un muro
Se una bottiglia verde dovesse cadere accidentalmente
Ci sarebbero 9 bottiglie verdi in piedi sul muro
Puoi creare un file seguendo queste istruzioni:
-
Aprire il file digitando il seguente comando: nano file1
-
Digita il testo nell'editor nano
-
Premere CTRL e O per salvare il file
-
Premere CTRL e X per uscire dal file
Ora crea un altro file chiamato "file2" e inserisci il seguente testo:
10 bottiglie verdi in piedi su un muro
Se 1 bottiglia verde dovesse cadere accidentalmente
Ci sarebbero 9 bottiglie verdi in piedi sul muro
Puoi creare un file seguendo queste istruzioni:
-
Aprire il file digitando il seguente comando: nano file2
-
Digita il testo nell'editor nano
-
Premere CTRL e O per salvare il file
-
Premere CTRL e X per uscire dal file
Come confrontare due file usando Linux
Il comando usato in Linux per mostrare le differenze tra 2 file è chiamato comando diff.
La forma più semplice del comando diff è la seguente:
diff file1 file2
Se i file sono uguali, non verrà emesso alcun output quando si utilizza questo comando, tuttavia, poiché ci sono differenze, si vedrà un output simile al seguente:
2,4c2,3
<10 bottiglie verdi in piedi sul muro
<Se una bottiglia verde dovesse cadere accidentalmente
<Ci sarebbero 9 bottiglie verdi in piedi sul muro
…
> Se 1 bottiglia verde dovesse cadere accidentalmente
> Ci sarebbero 9 bottiglie verdi in piedi sul muro
Inizialmente, l'output potrebbe sembrare confuso, ma una volta compresa la terminologia è abbastanza logico.
Usando i tuoi stessi occhi puoi vedere che le differenze tra i 2 file sono le seguenti:
- Il secondo file ha solo tre righe mentre il primo ha 4.
- Il secondo file dice "1 bottiglia verde" sulla terza riga mentre il primo file dice "una bottiglia verde"
- Il secondo file dice "ci sarebbe" invece di "ci sarebbe" sulla linea finale
L'output del comando diff mostra che tra le righe 2 e 4 del primo file e le righe 2 e 3 del secondo file ci sono differenze.
Quindi elenca le righe da 2 a 4 dal primo file seguito dalle 2 diverse righe nel secondo file.
Come mostrare solo se i file sono diversi
Se vuoi solo sapere se i file sono diversi e non sei interessato a quali linee sono diverse puoi eseguire il seguente comando:
diff -q file1 file2
Se i file sono diversi, verrà visualizzato quanto segue:
I file file1 e file2 sono diversi
Se i file sono uguali, non viene visualizzato nulla.
Come mostrare un messaggio se i file sono uguali
Quando si esegue un comando si desidera sapere che ha funzionato correttamente, quindi si desidera che venga visualizzato un messaggio quando si esegue il comando diff indipendentemente dal fatto che i file siano uguali o diversi
Per ottenere questo requisito utilizzando il comando diff, è possibile utilizzare il seguente comando :.
diff -s file1 file2
Ora se i file sono uguali, riceverai il seguente messaggio:
I file file1 e file2 sono identici
Come produrre le differenze fianco a fianco
Se ci sono molte differenze allora può diventare molto rapidamente confuso su quali siano effettivamente le differenze tra i due file.
È possibile modificare l'output del comando diff in modo che i risultati vengano visualizzati fianco a fianco. Per fare questo, esegui il seguente comando:
diff -y file1 file2
L'output per il file utilizza il carattere | simbolo per mostrare una differenza tra le due linee, a <per mostrare una linea che è stata rimossa e a> per mostrare una linea che è stata aggiunta.
È interessante notare che se si esegue il comando utilizzando i nostri file di dimostrazione, tutte le linee verranno visualizzate come diverse tranne l'ultima riga del file 2 che verrà mostrata come eliminata.
Limitazione delle larghezze delle colonne
Quando si confrontano due file affiancati, può essere difficile leggere se i file contengono molte colonne di testo.
Per limitare un numero di colonne utilizzare il seguente comando:
Come ignorare le differenze tra maiuscole e minuscole quando si confrontano i file
Se vuoi confrontare due file ma non ti importa se il caso delle lettere è lo stesso tra i due file, puoi usare il seguente comando:
Come ignorare lo spazio bianco finale alla fine di una riga
Se durante il confronto dei file si notano un sacco di differenze e le differenze sono causate dallo spazio bianco alla fine delle righe, è possibile omettere queste come visualizzate come modifiche eseguendo il seguente comando:
Come ignorare tutte le differenze di spazio bianco tra due file
Se ti interessa solo il testo in un file e non ti importa se ci sono più spazi in uno rispetto all'altro puoi usare il seguente comando:
Come ignorare le righe vuote quando si confrontano due file
Se non ti interessa che un file possa avere delle righe vuote in più, puoi confrontare i file usando il seguente comando:
Sommario
Puoi trovare maggiori informazioni leggendo il manuale per il comando diff.
uomo diff
Il comando diff può essere usato nella sua forma più semplice per mostrare le differenze tra 2 file, ma puoi anche usarlo per creare un file diff come parte di una strategia di patch come mostrato in questa guida al comando di patch di Linux.
Un altro comando che è possibile utilizzare per confrontare i file è il comando cmp come mostrato da questa guida. Questo confronta i file byte per byte.




