Jak porovnat dva soubory v Linuxu

How Compare Two Files Linux



Pokud chcete porovnat dva soubory a dešifrovat rozdíl, zavolá se příkaz rozdíl se používá. Tato příručka se zaměřuje na poskytování používání rozdíl příkaz s různými možnostmi, abyste získali rozdíl mezi dvěma soubory.

Jak tedy funguje rozdíl příkaz skutečně funguje? The rozdíl příkaz porovná dva soubory a vydá seznam rozdílů mezi oběma soubory. Přesněji, poskytuje seznam úprav, které je třeba provést v prvním souboru, aby odpovídal druhému souboru. The rozdíl příkaz používají programátoři také k získání rozdílu mezi dvěma soubory zdrojového kódu pro vývoj záplat.







Než se ponoříme do příkladů, uvědomte si, že pořadí souborů je velmi důležité. Protože rozdíl příkaz poskytuje výstup podle pořadí souborů.



Jak používat příkaz diff v Linuxu k porovnávání souborů:

Syntaxe souboru rozdíl příkaz je uveden níže:



$rozdíl [možnosti] [soubor 1] [soubor2]

Nejprve vytvořte dva soubory. Vytvářím textové soubory pod názvem test_file_1.txt a test_file_2.txt . Tyto soubory obsahují obsah s malým rozdílem:





Nyní pomocí následujícího příkazu získáte rozdíl:



$rozdíltest_file_1.txt test_file_2.txt

Standardní výstup zobrazoval řádky, které se shodují podle pořadí souborů uvedených v příkazu. Dekódujme tedy výstup:

Porovnání souborů je označeno a každý štítek má číslo na obou stranách. Formát je následující:

[Číslo řádku souboru 1] [Štítek (a, c, d)] [Číslo řádku souboru 2]

Existují tři štítky:

  • na - Přidat: Přidejte obsah do prvního souboru a synchronizujte jej s druhým souborem.
  • C - Změna: Označuje, že je nutná úprava obsahu prvního souboru, aby odpovídala druhému souboru.
  • d - Odstranit: Odebere obsah z prvního souboru, aby odpovídal druhému.

2d1 označuje odstranění řádku číslo 2 prvního souboru, aby odpovídal druhému souboru z řádku číslo 1.

Podobně, 4c3 znamená provedení změny ve čtvrtém řádku prvního souboru tak, aby odpovídal řádku číslo 3 druhého souboru, protože oba řádky se mírně liší.

Existuje jiný způsob zobrazení rozdílu, použijte rozdíl příkaz pomocí -a volba:

$rozdíl -a -V 60test_file_1.txt test_file_2.txt

Ve výše uvedeném výstupu je obsah test_file_1.txt se zobrazí na levé straně, zatímco obsah textový_soubor_2.txt se zobrazí na pravé straně. Rozdíl je indikován symboly:

  • | - V druhém souboru je řádek jiný
  • > - V druhém souboru je řádek další
  • <— Line has been deleted from the second file

-W označuje šířku mezi obsahem dvou souborů. Chcete -li získat rozdíl a zobrazit rozdíl, použijte následující:

$rozdíl -a -V 60 --suppress-common-linestest_file_1.txt test_file_2.txt

Jak získat výstup v jednom řádku pomocí příkazu diff:

Pokud je pro vás označenou metodu těžké dekódovat, pak existuje jednodušší přístup. Za použití -q možnost s rozdíl příkaz poskytuje výstup v jednom řádku. Bez jakýchkoli dalších informací však:

$rozdíl -qtest_file_1.txt test_file_2.txt

Pokud se soubory liší, výše uvedený příkaz poskytne výstup. Pokud jsou soubory identické, nebude žádný výstup. Abych to předvedl, vytvářím kopii souboru test_file_1.txt použitím:

$cptest_file_1.txt test_file_3.txt

Nový soubor bude vytvořen pod názvem test_file_3.txt obsahující stejný obsah, který test_file_1.txt má. Nyní použijte:

$rozdíl -qtest_file_1.txt test_file_2.txt

Protože oba soubory mají podobný obsah, nebyl by tedy žádný výstup.

Jak zkontrolovat rozdíl souborů v kontextovém režimu pomocí příkazu diff:

Chcete -li získat srovnání v kontextovém režimu, -C možnost bude použita s rozdíl příkaz:

$rozdíl -Ctest_file_1.txt test_file_2.txt

Pojďme rozebrat výstup.

Aby byl rozdíl zachován, je první soubor označen *** spolu s datem a časem vytvoření, zatímco druhý soubor je označen -.

Další řádek označuje řadu řádků uvažovaných během porovnávání. U prvního souboru je *** 1,6 **** a pro druhý soubor ano —1,5—- :

Rozdíl je indikován symboly:

  • +: V prvním souboru není řádek. Vložte jej do prvního souboru nebo jej odeberte z druhého souboru, aby odpovídaly oběma souborům.
  • -: Řádek existuje v prvním souboru, ale ne ve druhém souboru. Zkuste jej vložit do druhého souboru nebo jej z prvního odeberte, aby odpovídal oběma souborům.
  • ! : Aby linka odpovídala, potřebuje úpravu.

Jak zkontrolovat rozdíl souborů v sjednoceném režimu pomocí příkazu diff:

Sjednocený režim je docela podobný kontextovému režimu, ale bez nadbytečných informací. Vlajka, kterou používáme, je -u :

$rozdíl -utest_file_1.txt test_file_2.txt

Na výstupu je první soubor označen - a druhý +++. Druhý řádek ukazuje počet řádků uvažovaných pro srovnání v obou souborech, poté obsah, který má být odstraněn, přidán nebo upraven pomocí symbolů s nimi. V obou souborech nebude žádný symbol s podobnými řádky.

Jak ignorovat rozlišování malých a velkých písmen při použití příkazu diff:

Pokud chcete porovnat soubory a přitom ignorovat velká a malá písmena, použijte -i vlajka:

$rozdíl -itest_file_1.txt test_file_2.txt

Pro demonstraci jsem vytvořil D z Hluboko v v prvním souboru malý:

Jak je vidět na prvním příkazu, rozdíl je uveden; při používání -i tento rozdíl byl odstraněn.

Některé další užitečné možnosti souboru rozdíl příkazy jsou uvedeny níže:

Volba Popis
-na Tato možnost považuje všechny soubory za textové soubory
-B Ignoruje úpravy, kde jsou všechny řádky prázdné
-A Tato možnost ignoruje rozšíření karty
-Já Ignoruje změny, kde se shodují všechny řádky
-s Poskytuje výstup, pokud jsou dva soubory totožné
-v Ignoruje veškerý bílý prostor
-S Ignoruje prázdné místo na konci řádku

Jak použít Vim Editor ke srovnání dvou souborů:

Další metodou porovnání dvou souborů je použití souboru vimdiff příkaz. K tomu musíte mít nainstalovaný vim:

$sudovýstižnýNainstalujte přišel jsem

Chcete -li porovnat dva soubory, použijte:

$vimdiff test_file_1.txt test_file_2.txt

Oba soubory se otevřou vedle sebe. Část, která neodpovídá, bude zvýrazněna:

Jak porovnat dva soubory pomocí colordiff:

Dalším přístupem je jakési rozšíření souboru rozdíl příkaz. Srovnání můžete lépe identifikovat přidáním barev. K instalaci použijte:

$sudovýstižnýNainstalujteColordiff

Chcete -li porovnat soubory, použijte:

$colordiff test_file_1.txt test_file_2.txt

Můžete vyměnit rozdíl s Colordiff abyste získali standardní výstup souboru rozdíl příkaz v barevném formátu.

Závěr:

Chcete -li porovnat soubory v systému Linux a dokonce i v systému macOS, použitý nástroj se nazývá diff. Obslužný program diff porovnává dva soubory a poskytuje informace o rozdílech mezi těmito dvěma soubory. Vývojáři primárně používají příkaz diff k vytváření opravných souborů.

V této příručce jsme důkladně diskutovali o rozdíl příkaz a jak jej použít k porovnání dvou souborů s různými možnostmi. Také jsme se naučili používat Colordiff aby byly rozdíly mezi soubory lépe rozpoznatelné. Pokud se vám ale zdá, že je obslužný program na bázi terminálu těžko použitelný, existují i ​​některé nástroje založené na GUI, například Kompare, DiffMerge, Meld-Diff Tool a Diffuse-GUI Giff Tool.