Jak porovnávat dva textové soubory pomocí Linuxu

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ů:

  1. Otevřete soubor zadáním následujícího příkazu: nano file1
  2. Zadejte text do editoru nano
  3. Stisknutím kláves CTRL a O uložte soubor
  4. 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ů:

  1. Otevřete soubor zadáním následujícího příkazu: nano file2
  2. Zadejte text do editoru nano
  3. Stisknutím kláves CTRL a O uložte soubor
  4. 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 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í:

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 řá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:

diff - width = 5 souborů2

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:

diff -i file1 file2

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:

diff -Z soubor1 soubor2

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:

diff -w soubor1 soubor2

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:

diff -B soubor1 soubor2

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.