Confrontare due file in Linux col comando diff

by Jessica Lambiase on

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

Confrontare due file in Linux col comando diff

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.

Confrontare due file in Linux col comando diff

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ì:

Confrontare due file in Linux col comando diff

Clicchiamo innanzitutto su Confronto di File e, negli spazi appositi, inseriamo i due file da confrontare. Clicchiamo ora su Confronta:

Confrontare due file in Linux col comando diff

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“.

L'articolo Confrontare due file in Linux col comando diff appare per la prima volta su ChimeraRevo - Il miglior volto della tecnologia.

Leggi il contenuto originale su Linux – ChimeraRevo – Il miglior volto della tecnologia

Written by: Jessica Lambiase