Su FreeBSD o sulla maggior parte dei sistemi Linux, puoi reindirizzare l'output di diff attraverso cat -v -e -t per mostrare le differenze degli spazi bianchi.
diff file1 file2 | cat -vet
Le schede verranno mostrate come ^I , un $ verrà mostrato alla fine di ogni riga in modo da poter vedere gli spazi bianchi finali e i caratteri non stampabili verranno visualizzati come ^X o M-X .
Se hai GNU coreutils (disponibile sulla maggior parte delle distribuzioni Linux non-busybox), questo può essere semplificato in
diff file1 file2 | cat -A
Sui sistemi busybox, usa catv -vet .
Per vim utenti, c'è una pratica utilità per mostrare le differenze esatte tra i file:
vimdiff file1 file2
Questo metterà ogni file in finestre, fianco a fianco, e le differenze saranno evidenziate a colori.
Alcuni comandi utili in vimdiff
Mentre in vimdiff , alcuni comandi utili sono:
-
]c:passa alla modifica successiva -
[c:passa alla modifica precedente -
ctrl-W ctrl-W:passa ad un'altra finestra -
zo:pieghe aperte -
zc:chiudere le pieghe
Esempio
Ecco un esempio di vimdiff in un xterm confrontando due versioni di un cups file di configurazione:

Puoi vedere che lunghe sezioni di linee identiche sono state collassate. Possono essere riaperti con zo .
La combinazione di colori varia a seconda delle impostazioni delle opzioni. Nell'esempio precedente, quando una riga appare in un file ma non nell'altro, a quella riga viene assegnato uno sfondo blu scuro. Nell'altro file, le righe mancanti sono indicate da linee tratteggiate. Quando una linea appare in entrambi i file ma presenta alcune differenze, le parti invariate delle linee hanno uno sfondo rosa e le parti modificate hanno uno sfondo rosso.
Uno dei file è stato modificato su un computer Windows?
La terminazione di linea standard su Windows è CRLF, mentre su Linux è semplicemente LF (e su Mac era CR, ma sospetto che sia cambiato da OS X).
Prova wc -l sui file e vedi quante righe, quindi verifica se la differenza di dimensioni è uguale al numero di righe (l'ultima riga potrebbe non essere terminata in un file).