Tato příručka vám ukáže, jak pomocí systému Linux porovnávat dva soubory a vytisknout jejich rozdíl na obrazovku nebo soubor.
Nemusíte instalovat žádný speciální software pro porovnání souborů pomocí systému Linux, ale potřebujete vědět, jak otevřít okno terminálu.
Jak ukazuje připojená příručka, existuje mnoho způsobů, jak otevřít okno terminálu pomocí systému Linux. Nejjednodušší je stisknout klávesy CTRL, ALT a T současně.
Vytváření souborů ke srovnání
Chcete-li sledovat spolu s touto příručkou, vytvořte soubor s názvem "file1" a zadejte následující text:
10 zelených lahví stojících na zdi
10 zelených lahví stojících na zdi
Pokud by nějaká zelená láhev měla náhodou spadnout
Na zdi by stálo 9 zelených lahví
Soubor můžete vytvořit podle následujících pokynů:
-
Otevřete soubor zadáním následujícího příkazu: nano file1
-
Zadejte text do editoru nano
-
Stisknutím kláves CTRL a O uložte soubor
-
Stisknutím kláves CTRL a X ukončete soubor
Nyní vytvořte další soubor s názvem "file2" a zadejte následující text:
10 zelených lahví stojících na zdi
Pokud 1 zelená láhev náhodně spadne
Na zdi by stálo 9 zelených lahví
Soubor můžete vytvořit podle následujících pokynů:
-
Otevřete soubor zadáním následujícího příkazu: nano file2
-
Zadejte text do editoru nano
-
Stisknutím kláves CTRL a O uložte soubor
-
Stisknutím kláves CTRL a X ukončete soubor
Jak porovnávat dva soubory pomocí systému Linux
Příkaz používaný v Linuxu pro zobrazení rozdílů mezi 2 soubory se nazývá příkaz diff.
Nejjednodušší forma příkazu diff je následující:
diff file1 file2
Pokud jsou soubory stejné, nebude při použití tohoto příkazu žádný výstup, jelikož existují rozdíly, uvidíte výstup podobný následujícímu:
2,4c2,3
<10 zelených lahví stojících na zdi
<Pokud by nějaká zelená láhev měla náhodou spadnout
<Na stěně by stálo 9 zelených lahví
…
> Pokud 1 zelená láhev náhodně spadne
> Na zdi by stálo 9 zelených lahví
Zpočátku se výstup může zdát zmatený, ale jakmile rozumíte terminologii, je to poměrně logické.
Pomocí vlastních očí můžete vidět, že rozdíly mezi dvěma soubory jsou následující:
- Druhý soubor má pouze tři řádky, zatímco první soubor má 4 řádky.
- Druhý soubor říká "1 zelená láhev" na třetí řádce, zatímco první soubor říká "jedna zelená láhev"
- Druhý soubor říká, že "tam by" místo "tam by" na finále
Výstup z příkazu diff ukazuje, že mezi řádky 2 a 4 prvního souboru a řádky 2 a 3 druhého souboru existují rozdíly.
Poté zobrazí řádky 2 až 4 z prvního souboru, po kterém následují dva různé řádky ve druhém souboru.
Jak se zobrazují pouze v případě, že se soubory liší
Pokud chcete vědět, jestli jsou soubory odlišné a nemáte zájem o jiné řádky, můžete spustit následující příkaz:
diff -q soubor1 soubor2
Pokud jsou soubory odlišné, zobrazí se následující:
Soubory file1 a file2 se liší
Pokud jsou soubory stejné, nic se nezobrazí.
Jak zobrazit zprávu Pokud jsou soubory stejné
Když spustíte příkaz, který chcete vědět, že funguje správně, chcete, aby se zpráva zobrazovala při spuštění příkazu diff bez ohledu na to, zda jsou soubory stejné nebo jiné
Chcete-li tento požadavek splnit pomocí příkazu diff, můžete použít následující příkaz :.
diff -s soubor1 soubor2
Nyní, pokud jsou soubory stejné, obdržíte následující zprávu:
Soubory file1 a file2 jsou totožné
Jak vytvářet rozdíly vedle sebe
Pokud existuje spousta rozdílů, může se velmi rychle zaměnit, co jsou skutečné rozdíly mezi těmito dvěma soubory.
Výstup příkazu diff můžete změnit tak, aby se výsledky zobrazovaly vedle sebe. Chcete-li to provést, spusťte následující příkaz:
diff -y soubor1 soubor2
Výstup souboru používá | symbol pro zobrazení rozdílu mezi těmito dvěma řádky, a <zobrazit řádek, který byl odstraněn, a> zobrazit řádku, která byla připojena.
Je zajímavé, že pokud spustíte příkaz pomocí našich ukázkových souborů, všechny řádky se budou lišit, s výjimkou posledního řádku souboru 2, který bude zobrazen jako vymazaný.
Omezení šířky sloupců
Při porovnávání dvou souborů vedle sebe může být obtížné číst, zda mají soubory mnoho sloupců textu.
Chcete-li omezit počet sloupců, použijte následující příkaz:
Jak ignorovat případové rozdíly při porovnávání souborů
Pokud chcete porovnat dva soubory, ale je jedno, zda je případ písmen stejný mezi těmito dvěma soubory, můžete použít následující příkaz:
Jak ignorovat koncový bílý prostor na konci řádku
Pokud při porovnávání souborů zaznamenáte spousty rozdílů a rozdíly jsou způsobeny bílou mezerou na konci řádků, můžete je vynechat jako zobrazené jako změny spuštěním následujícího příkazu:
Jak ignorovat všechny bílé rozdíly mezi dvěma soubory
Pokud se zajímáte pouze o text v souboru a je vám jedno, zda v něm existuje více mezer než druhý, můžete použít následující příkaz:
Jak ignorovat prázdné čáry při porovnávání dvou souborů
Pokud je vám jedno, že jeden soubor může mít navíc prázdné řádky, můžete porovnat soubory pomocí následujícího příkazu:
souhrn
Více informací získáte tak, že si přečtete manuál pro příkaz diff.
man diff
Příkaz diff může být použit ve své nejjednodušší formě, aby vám ukázal rozdíly mezi dvěma soubory, ale můžete jej také použít k vytvoření souboru diff jako součásti strategie patching, jak je ukázáno v této příručce příkazu patch Linux.
Dalším příkazem, který můžete použít k porovnání souborů, je příkaz cmp, jak ukazuje tato příručka. To porovná soubory byte byte.