Skip to content

Jak porovnat dva textové soubory pomocí Linuxu

30 de Červen de 2021
compare two text files linux 3861434 52a95e5bb9fa4f00aad8f40b0a3e4ebe

Co je třeba vědět

  • Chcete-li porovnat, spusťte: diff file1 file2
  • Ukažte, jak se liší, pomocí: diff -q soubor1 soubor2
  • Ukažte, jak jsou stejné, pomocí: diff -s soubor1 soubor2

Tento článek vysvětluje, jak používat Linux k porovnání dvou souborů a výstupu rozdílů mezi soubory na obrazovku nebo do souboru. Nebudete instalovat speciální software pro porovnávání souborů pomocí Linuxu, ale potřebujete vědět, jak otevřít okno terminálu.

Vytvořte soubory k porovnání

Pokud chcete postupovat podle této příručky, vytvořte dva textové soubory, které obsahují podobný, ale odlišný text.

Vytvořte první soubor

Vytvořte soubor s názvem soubor1 a poté zadejte následující text: 10 zelených lahví stojící na zdi
10 zelených lahví stojící na zdi
Pokud by náhodou spadla jedna zelená láhev
Na zdi by stálo 9 zelených lahví

Chcete-li vytvořit tento soubor, postupujte podle těchto pokynů:

  1. Otevřete soubor zadáním následujícího příkazu: nano file1

    Nejrychlejším způsobem, jak otevřít okno terminálu v systému Linux, je stisknout klávesu CTRL + ALT + T současně.

  2. Zadejte text do nano editoru.

    Terminálový soubor1 v Nano

  3. lis CTRL + O soubor uložit.

  4. lis CTRL + X pro ukončení souboru.

Vytvořte druhý soubor

Dále vytvořte další soubor s názvem file2 a zadejte následující text: 10 zelených lahví stojící na zdi
Pokud by náhodou spadla 1 zelená láhev
Na zdi by stálo 9 zelených lahví

Chcete-li vytvořit tento soubor, postupujte podle těchto pokynů:

  1. Otevřete soubor zadáním následujícího příkazu: nano file2

  2. Zadejte text do nano editoru.

    Terminálový soubor2 v Nano

  3. lis CTRL + O soubor uložit.

  4. lis CTRL + X pro ukončení souboru.

Jak porovnat dva soubory pomocí Linuxu

Příkaz používaný v Linuxu k zobrazení rozdílů mezi dvěma soubory se nazývá příkaz diff. Nejjednodušší forma příkazu diff je následující: diff file1 file2

Pokud jsou soubory stejné, při použití tohoto příkazu se nezobrazí žádný výstup. Jelikož však existují rozdíly, výstup je podobný tomuto: 2,4c2,3
<10 zelených lahví stojící na zdi

> Pokud by náhodou měla spadnout 1 zelená láhev
> Na zdi by stálo 9 zelených lahví

Zpočátku se výstup zdá být matoucí, ale jakmile pochopíte terminologii, je to docela logické.

Příkaz terminálu „diff file1 file2“ v Linuxu

Rozdíly mezi těmito dvěma soubory jsou následující:

  • Druhý soubor má pouze tři řádky. První soubor má čtyři.
  • Druhý soubor říká 1 zelená láhev na třetím řádku. První soubor říká jedna zelená láhev.
  • Druhý soubor říká červená namísto tam by na posledním řádku.

Výstup z příkazu diff ukazuje, že mezi řádky dva a čtyři prvního souboru a řádky dva a tři druhého souboru existují rozdíly. Potom uvádí řádky od dvou do čtyř z prvního souboru, následované dvěma různými řádky ve druhém souboru.

Jak zobrazit pouze v případě, že se soubory liší

Pokud chcete vědět pouze to, zda se soubory liší a nezajímá vás, které řádky se liší, spusťte následující příkaz: diff -q file1 file2

Pokud se soubory liší, 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, možná budete chtít vědět, že fungoval správně. Chcete, aby se při spuštění příkazu diff zobrazila zpráva, zda jsou soubory stejné nebo odlišné. K dosažení tohoto požadavku pomocí příkazu diff použijte následující příkaz: diff -s file1 file2

Pokud jsou soubory stejné, zobrazí se tato zpráva: Soubory file1 a file2 jsou identické

Jak vyrábět rozdíly vedle sebe

Pokud existuje několik rozdílů, může být matoucí, jaké jsou ve skutečnosti rozdíly mezi těmito dvěma soubory. Můžete změnit výstup příkazu diff tak, aby se výsledky zobrazovaly vedle sebe. Chcete-li to provést, spusťte následující příkaz: diff -y file1 file2

Výstup pro soubor používá | symbol pro zobrazení rozdílu mezi dvěma řádky, a < ukázat řádek, který byl odstraněn, a > zobrazit řádek, který byl připojen.

Příkaz terminálu "diff -y file1 file2" v Linuxu

Když spustíte příkaz pomocí demonstračních souborů v tomto článku, všechny řádky se zobrazí jako odlišné, s výjimkou posledního řádku file2, který se zobrazí jako odstraněný.

Omezit šířku sloupce

Při porovnávání dvou souborů vedle sebe může být obtížné číst, pokud mají soubory několik sloupců textu. Chcete-li omezit počet sloupců, použijte následující příkaz: diff –width = 5 file1 file2

Jak při porovnávání souborů ignorovat případové rozdíly

Pokud chcete porovnat dva soubory, ale je vám jedno, zda je velikost písmen mezi těmito dvěma soubory stejná, použijte následující příkaz: diff -i file1 file2

Jak ignorovat koncové mezery na konci řádku

Pokud si všimnete mnoha rozdílů při porovnávání souborů a rozdíly jsou způsobeny prázdným místem na konci řádků, zabraňte jim v zobrazování jako změny spuštěním následujícího příkazu: diff -Z file1 file2

Jak ignorovat všechny rozdíly v prázdném prostoru mezi dvěma soubory

Pokud vás zajímá pouze text v souboru a je vám jedno, zda je v jednom více mezer než v druhém, použijte následující příkaz: diff -w file1 file2

Jak ignorovat prázdné řádky při porovnávání dvou souborů

Pokud vám nevadí, že v jednom souboru mohou být navíc prázdné řádky, porovnejte soubory pomocí následujícího příkazu: diff -B file1 file2

souhrn

Další informace najdete v příručce k příkazu diff. mužský rozdíl

Příkaz diff lze v nejjednodušší formě použít k zobrazení pouze rozdílů mezi dvěma soubory. Můžete jej také použít k vytvoření souboru rozdílu jako součást strategie opravy. Dalším příkazem, který můžete použít k porovnání souborů, je příkaz cmp. Porovnává soubory bajt po bajtu.