Na FreeBSD nebo většině linuxových systémů můžete výstup diffu propojit pomocí cat -v -e -t
zobrazit rozdíly mezi mezerami.
diff file1 file2 | cat -vet
Karty se zobrazí jako ^I
, $
se zobrazí na konci každého řádku, takže můžete vidět koncové mezery a netisknutelné znaky se zobrazí jako ^X
nebo M-X
.
Pokud máte GNU coreutils (dostupné na většině distribucí Linuxu bez busyboxu), lze to zjednodušit na
diff file1 file2 | cat -A
Na systémech busybox použijte catv -vet
.
Pro vim
uživatelům, existuje praktický nástroj pro zobrazení přesných rozdílů mezi soubory:
vimdiff file1 file2
Tím se každý soubor umístí do oken vedle sebe a rozdíly se zvýrazní barevně.
Některé užitečné příkazy v vimdiff
V vimdiff
, některé užitečné příkazy jsou:
-
]c
:skok na další změnu -
[c
:skok na předchozí změnu -
ctrl-W ctrl-W
:přepnutí do jiného okna -
zo
:otevřené záhyby -
zc
:zavřít záhyby
Příklad
Zde je příklad vimdiff
v xterm
porovnání dvou verzí cups
konfigurační soubor:
Můžete vidět, že dlouhé části stejných čar byly sbalené. Lze je znovu otevřít pomocí zo
.
Barevné schéma se bude lišit v závislosti na vašem nastavení možnosti. Ve výše uvedeném příkladu, když se řádek objeví v jednom souboru, ale ne ve druhém, bude mít tento řádek tmavě modré pozadí. V druhém souboru jsou chybějící řádky označeny přerušovanými čarami. Když se řádek objeví v obou souborech, ale má nějaké rozdíly, nezměněné části řádků mají růžové pozadí a změněné části červené pozadí.
Byl jeden ze souborů upraven na počítači se systémem Windows?
Standardní ukončení linky ve Windows je CRLF, kdežto na Linuxu je to prostě LF (a na Macu to bývalo CR, ale mám podezření, že se to od OS X změnilo).
Zkuste wc -l
na souborech a podívejte se, kolik řádků, pak se podívejte, zda je rozdíl ve velikosti stejný jako počet řádků (poslední řádek nemusí být ukončen v jednom souboru).