3.0 KiB
Confrontare file
Il comando diff
confronta due file e produce una lista delle loro differenze. Per essere più precisi, produce un elenco delle modifiche che dovrebbero essere apportate al primo file, per farlo corrispondere al secondo file.
diff file1 file2
Ecco un esempio:
> cat file1
file1
> cat file2
file2
file3
file1
> diff file1 file2
0a1,2
> file2
> file3
Ogni differenza è elencata a sua volta in una singola colonna e ogni differenza viene etichettata. L'etichetta è composta da due numeri che circondano una lettera, come nell'esempio 0a1
.
Il primo numero è il numero di riga in file1, e il secondo numero è il numero di riga in file2. La lettera nel mezzo può essere:
c
: la riga nel primo file deve essere modificata per corrispondere alla riga nel secondo file;d
: la riga nel primo file deve essere eliminata;a
: il contenuto extra deve essere aggiunto al primo file per farlo corrispondere al secondo file.
I parametri -s
e -q
indicano, rispettivamente, se i due file sono identici ovvero differenti:
> diff -s file2 file3
I file file2 e file3 sono identici
> diff -q file1 file2
I file file1 e file2 sono diversi
Una vista alternativa
> diff -y -W 70 file1 file3
> file2
file5 | file3
file1 file1
file4 <
L'opzione -y
(side by side) utilizza un layout diverso per mostrare le differenze tra i file. Spesso è conveniente specificare la larghezza -W
per limitare il numero di colonne visualizzate.
Il primo file viene visualizzato a sinistra mentre il secondo è mostrato sulla destra. Le righe di ogni file vengono visualizzate fianco a fianco. Ci sono caratteri indicatori accanto alle varie righe:
|
: una riga che è differente nel secondo file;<
: una riga che non è presente nel secondo file;>
: una riga che non è presente nel primo file
Uno spruzzo di colore
sudo apt-get install colordiff
Il comando colordiff
aggiunge colore all'output di diff
.
Confrontare directories
Il comando diff permette anche di confrontare cartelle tra loro. La sintassi è molto semplice:
diff -r dir1 dir2
Vengono mostrati i nomi dei file/directories differenti e le differenze tra i files. Con l'opzione -q
viene mostrato solo il nome dei files diversi.
ls -R
.:
dir1 dir2
./dir1:
file1
./dir2:
colordiff -rq dir1 dir2
Solo in dir1: file1
Vimdiff
Per chi utilizza vim, esiste vimdiff
https://linuxhandbook.com/vimdiff/.