Linux ti offre più opzioni per confrontare due file. Il comando più diffuso per confrontare due file è diff . In questo tutorial esamineremo il comando diff e alcune altre opzioni che puoi utilizzare per confrontare due file in Linux.
Creiamo due file da usare come esempi durante il tutorial.
Testo per il file 1:
Welcome to the best source for learning Linux. How are you doing?
Testo per il file 2:
Welcome to Linux For Devices! How are you doing?
Comando Diff per confrontare due file in Linux
Il comando Diff è il comando più comunemente usato quando si tratta di confrontare due file. Il nome è l'abbreviazione di "differenza “. L'output indica i passaggi da seguire per modificare il primo file in modo che corrisponda al secondo file.
La sintassi per usare il comando diff è:
diff [option] [file 1] [file 2]
Vediamo il comando diff in azione.
diff [file 1] [file 2]
L'output mostra solo le righe che non corrispondono. Le righe vengono visualizzate nell'ordine dei file come indicato nel comando.
Proviamo a capire l'output.
Puoi vedere che l'output inizia con '1c1' . Questo è nel formato [intervallo][abc][intervallo].
Dove il primo campo di intervallo appartiene al primo file e il secondo campo di intervallo appartiene al secondo file.
La lettera al centro può essere una delle tre seguenti.
- a: aggiungi
- c: cambia
- d: elimina
Nel nostro esempio, '1c1' significa che hai bisogno di cambiare numero di riga uno dei primi file per assicurarti che i due file si sincronizzino fino alla riga numero uno del secondo file.
3d2 significa che devi eliminare la riga numero tre del primo file per assicurarsi che i due file vengano sincronizzati sulla riga numero due del secondo file.
Modalità contesto (diff -c)
Per vedere la differenza tra due file in modalità contesto, usa -c flag insieme al comando diff.
diff -c [file 1] [file 2]
Proviamo a capire l'output.
L'output inizia con le meta informazioni sul file. Si tratta di informazioni come il nome del file, la data e l'ora di creazione e le autorizzazioni.
La riga successiva è *** 1,3 ****. Questa riga contiene il numero da e verso la riga preso in considerazione durante il confronto.
Dopo questo è il testo del file 1. Qui puoi vedere alcuni simboli prima della riga. Vediamo cosa significano questi simboli.
- + :La riga manca nel primo file. Puoi aggiungerlo nel primo file o eliminarlo dal secondo file.
- – : La riga è mancante nel secondo file. Puoi aggiungerlo nel secondo file o eliminarlo dal primo file.
- ! : La riga deve essere modificata per farla corrispondere in entrambe le righe.
La stessa informazione viene ripetuta per il secondo file.
Formato unificato (diff -u)
Il formato unificato è una versione migliorata della modalità contesto. La sintassi è la seguente:
diff -u [file 1] [file 2]
Puoi vedere che trasmette le stesse informazioni ma in modo conciso.
Vimdiff per confrontare due file in Linux
Un altro modo per confrontare due file è Vimdiff. Funzionerà solo se hai l'editor Vim sul tuo sistema.
La sintassi per confrontare due file usando vimdiff è:
vimdiff [file 1] [file 2]
Ecco come appare l'output. Apre i due file nell'editor Vim fianco a fianco. Evidenzia anche le parti che non corrispondono nei due file. Dovresti usare vimdiff se ti senti a tuo agio con l'editor Vim.
Difficoltà colore
Lo script Perl colordiff è un wrapper per 'diff' e produce lo stesso output ma con una bella 'evidenziazione della 'sintassi'. Ti dà anche la possibilità di personalizzare i colori.
Per installare colordiff sul tuo sistema usa il comando apt:
sudo apt install colordiff
Questo comando installerà colordiff sul tuo sistema. Per confrontare due file usando colodiff usa :
colordiff [file 1] [file 2]
Puoi vedere che l'output è lo stesso di quello prodotto sopra nel comando diff. L'unica differenza è quella del colore nell'output.
Conclusione
Questo tutorial riguardava diversi modi che puoi utilizzare per confrontare i file in Linux.