Immaginiamo di avere due file di testo da confrontare per trovarne le righe differenti, ad esempio un elenco di numeri telefonici; oppure, peggio ancora, di avere due file apparentemente identici contenenti del codice – con la differenza che uno funziona, l’altro no.
Che sia questo il caso o che siano altri, avere a disposizione uno strumento che ci permetta di confrontare due file e visualizzarne immediatamente la differenza fa sempre comodo.
Se abbiamo a disposizione il sistema operativo Linux e non vogliamo affidarci ad un sito web per svolgere quello che può diventare un arduo compito, possiamo affidarci all’utility diff. Di fatto si tratta di un programmino pre-installato in numerosi sistemi operativi Linux che permette di comparare due file visualizzandone al volo le differenze.
Scopriamo come funziona!
Confrontare due file con diff
Di base, la sintassi del comando diff è
diff file1 file2
Dove a file1 e file2 sostituiremo i percorsi dei file da confrontare. L’output è simile a questo:
Notiamo la presenza delle diciture “4c4” e “7c7”: esse indicano l’inizio delle righe differenti nei due file – nel nostro caso la riga 4 e la riga 7. La parentesi angolare aperta (<) indica il contenuto della riga del primo file, quella chiusa (>) indica il contenuto della riga del secondo.
Per confrontare invece due file e scoprire soltanto se sono diversi (senza mostrare le differenze), potremo invece scrivere
diff -q file1 file2
Possiamo usare invece il parametro -y per visualizzare il contenuto dei due file fianco a fianco. Il comando in questione è
diff -y file1 file2
ed il risultato è simile a questo.
Se le due metà sono separate dal carattere pipe (|), vorrà dire che si tratta di righe con differenze. Questo metodo di confronto è ottimo per i file contenenti codice.
Inoltre possiamo usare il parametro -i per ignorare le differenze dovute alle maiuscole e alle minuscole – in tal modo, la parola “Arpa” sarà uguale alla parola “ARPA”, alla parola “aRPa” e via discorrendo.
Vi sono inoltre numerosi altri parametri che è possibile impartire al comando diff per confrontare due file: il consiglio è di leggere la pagina di manuale di questo pratico e potente strumento con il comando
man diff
Meld – L’interfaccia grafica di diff
Se con il terminale proprio non vogliamo avere a che fare ma diff ci piace lo stesso, possiamo avvalerci di un’interfaccia grafica che lo sfrutta – tale Meld. Questa piccola utility è solitamente inclusa nei repository di sistema delle più note distribuzioni. Su Ubuntu, ad esempio, potremo installare meld digitando a terminale
sudo apt install meld
Una volta completata l’installazione apriamo il programmino, che si presenta così:
Clicchiamo innanzitutto su Confronto di File e, negli spazi appositi, inseriamo i due file da confrontare. Clicchiamo ora su Confronta:
Vedremo così i file fianco a fianco in un editor molto simile a quello di sistema. Di fianco a ciascuna riga differente sarà posta una freccia, tramite la quale potremo sostituire il contenuto della riga nell’altro file. Cliccando sulla freccia verso destra, la riga del primo file sovrascriverà quella del secondo; cliccando sulla freccia sinistra succederà l’opposto.
In tutti i casi, potremo scrivere in qualsiasi punto dei due file semplicemente posizionando il cursore e digitando normalmente, come se stessimo usando un qualsiasi editor di testo. Per salvare le modifiche dovremo infine cliccare su “Salva“.