GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl v mezerách mezi dvěma soubory na Linuxu

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


Linux
  1. Jak přenášet soubory mezi dvěma počítači pomocí příkazů nc a pv

  2. Naučte se rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  3. 5 nástrojů příkazového řádku pro rychlé vyhledání souborů v systému Linux

  1. Linux – Jak smazat soubory vytvořené mezi dvěma časy?

  2. Extrahovat text mezi dva konkrétní řádky?

  3. Kartézský součin dvou souborů (jako sady řádků) v GNU/Linux

  1. Tisknout dva soubory ve dvou sloupcích?

  2. Společné řádky mezi dvěma soubory?

  3. Jak získat rozdíl (pouze doplňky) mezi dvěma soubory v linuxu