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ů:
-
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ě.
-
Zadejte text do nano editoru.
-
lis CTRL + O soubor uložit.
-
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ů:
-
Otevřete soubor zadáním následujícího příkazu: nano file2
-
Zadejte text do nano editoru.
-
lis CTRL + O soubor uložit.
-
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é.
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.
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.