Ako porovnať dva súbory v systéme Linux

How Compare Two Files Linux



Ak chcete porovnať dva súbory a dešifrovať rozdiel, zavolá sa príkaz rozdiel sa používa. Táto príručka sa zameriava na to, aby vám poskytla možnosti použitia rozdiel príkaz s rôznymi možnosťami, aby ste získali rozdiel medzi dvoma súbormi.

Ako teda funguje rozdiel príkaz skutočne funguje? The rozdiel príkaz porovná tieto dva súbory a vypíše zoznam rozdielov medzi oboma súbormi. Presnejšie povedané, poskytuje zoznam úprav, ktoré je potrebné vykonať v prvom súbore, aby zodpovedali druhému súboru. The rozdiel príkaz používajú programátori aj na zistenie rozdielu medzi dvoma súbormi zdrojového kódu na vývoj opráv.







Pred ponorením sa do príkladov si všimnite, že poradie súborov je veľmi dôležité. Pretože rozdiel príkaz poskytuje výstup podľa poradia súborov.



Ako používať príkaz diff v Linuxe na porovnávanie súborov:

Syntax súboru rozdiel príkaz je uvedený nižšie:



$rozdiel [možnosti] [súbor1] [súbor2]

Najprv vytvorte dva súbory. Vytváram textové súbory s názvom test_file_1.txt a test_file_2.txt . Tieto súbory obsahujú obsah s malým rozdielom:





Teraz pomocou nasledujúceho príkazu získate rozdiel:



$rozdieltest_file_1.txt test_file_2.txt

Štandardný výstup zobrazoval riadky, ktoré sa zhodujú podľa poradia súborov uvedených v príkaze. Dekódujme teda výstup:

Porovnanie súborov je označené a každý štítok má na oboch stranách číslo. Formát je nasledujúci:

[Číslo riadku súboru 1] [Štítok (a, c, d)] [Číslo riadku súboru 2]

Existujú tri štítky:

  • do - Pridať: Pridajte obsah do prvého súboru na synchronizáciu s druhým súborom.
  • c - Zmena: Označuje, že je potrebná úprava obsahu prvého súboru, aby zodpovedal druhému súboru.
  • d - Odstrániť: Odstráni obsah z prvého súboru, ktorý sa zhoduje s druhým.

2d1 označuje vymazanie riadku číslo 2 z prvého súboru tak, aby zodpovedal druhému súboru z riadku číslo 1.

Podobne, 4c3 znamená vykonať zmenu vo štvrtom riadku prvého súboru tak, aby zodpovedala riadku číslo 3 druhého súboru, pretože oba riadky sa mierne líšia.

Existuje iný spôsob zobrazenia rozdielu, použite rozdiel príkaz pomocou príkazu -a možnosť:

$rozdiel -a -V 60test_file_1.txt test_file_2.txt

Vo vyššie uvedenom výstupe je obsah test_file_1.txt sa zobrazuje na ľavej strane, zatiaľ čo obsah textový_súbor_2.txt sa zobrazuje na pravej strane. Rozdiel je označený symbolmi:

  • | - V druhom súbore je riadok iný
  • > - Riadok je v druhom súbore dodatočný
  • <— Line has been deleted from the second file

-W označuje šírku medzi obsahom dvoch súborov. Ak chcete získať oddelene a zobraziť rozdiel, použite nasledujúci postup:

$rozdiel -a -V 60 --suppress-common-linestest_file_1.txt test_file_2.txt

Ako dosiahnuť výstup v jednom riadku pomocou príkazu diff:

Ak je pre vás označenú metódu ťažké dekódovať, potom existuje jednoduchší prístup. Pomocou -q možnosť s rozdiel príkaz vám poskytne výstup v jednom riadku. Bez ďalších informácií však:

$rozdiel -qtest_file_1.txt test_file_2.txt

Ak sa súbory líšia, potom vyššie uvedený príkaz poskytne výstup. Ak sú súbory identické, nebude existovať žiadny výstup. Aby som to demonštroval, vytváram kópiu súboru test_file_1.txt použitím:

$cptest_file_1.txt test_file_3.txt

Nový súbor sa vytvorí pod názvom test_file_3.txt obsahujúci rovnaký obsah, ktorý test_file_1.txt má. Teraz použite:

$rozdiel -qtest_file_1.txt test_file_2.txt

Pretože oba súbory majú podobný obsah, neexistuje žiadny výstup.

Ako skontrolovať rozdiel súborov v kontextovom režime pomocou príkazu diff:

Ak chcete získať porovnanie v kontextovom režime, súbor -c možnosť sa použije s rozdiel príkaz:

$rozdiel -ctest_file_1.txt test_file_2.txt

Rozoberme výstup.

Aby sa zachoval rozdiel, prvý súbor je označený *** spolu s dátumom a časom vytvorenia, zatiaľ čo druhý súbor je označený -.

Nasledujúci riadok označuje rozsah riadkov uvažovaných počas porovnávania. Pre prvý súbor je *** 1,6 **** a pre druhý súbor je —1,5—- :

Rozdiel je označený symbolmi:

  • +: Riadok sa v prvom súbore nenachádza. Vložte ho do prvého súboru alebo ho odstráňte z druhého súboru, aby zodpovedal obom súborom.
  • -: Riadok existuje v prvom súbore, ale nie v druhom súbore. Skúste ho vložiť do druhého súboru alebo ho odstrániť z prvého, aby zodpovedal obom súborom.
  • ! : Aby sa riadok zhodoval, potrebuje úpravu.

Ako skontrolovať rozdiel súborov v zjednotenom režime pomocou príkazu diff:

Zjednotený režim je celkom podobný kontextovému režimu, ale bez nadbytočných informácií. Vlajka, ktorú používame, je -u :

$rozdiel -utest_file_1.txt test_file_2.txt

Na výstupe je prvý súbor označený - a druhý +++. Druhý riadok zobrazuje počet riadkov uvažovaných na porovnanie v oboch súboroch, potom obsah, ktorý sa má odstrániť, pridať alebo upraviť pomocou symbolov s nimi. V oboch súboroch nebude žiadny symbol s podobnými riadkami.

Ako ignorovať rozlišovanie malých a veľkých písmen pri použití príkazu diff:

Ak chcete porovnať súbory a pritom ignorovať veľkosť písmen, použite príkaz -i vlajka:

$rozdiel -itest_file_1.txt test_file_2.txt

Na ukážku som vyrobil D z Hlboko v v prvom súbore malý:

Ako je zrejmé z prvého príkazu, rozdiel je uvedený; pri použití -i tento rozdiel bol odstránený.

Niektoré ďalšie užitočné možnosti súboru rozdiel príkazy sú uvedené nižšie:

Možnosť Popis
-do Táto možnosť považuje všetky súbory za textové súbory
-B Ignoruje úpravy, kde sú všetky riadky prázdne
-A Táto možnosť ignoruje rozšírenie karty
-Ja Ignoruje zmeny tam, kde sa zhodujú všetky riadky
-s Poskytuje výstup, ak sú dva súbory zhodné
-v Ignoruje všetky biele miesta
-S Ignoruje biele miesto na konci riadka

Ako použiť Vim Editor na porovnanie dvoch súborov:

Ďalšou metódou na porovnanie dvoch súborov je použitie súboru vimdiff príkaz. Na to musíte mať nainštalovaný vim:

$sudovýstižnýInštalácia Prišiel som

Teraz na porovnanie dvoch súborov použite:

$vimdiff test_file_1.txt test_file_2.txt

Oba súbory sa otvoria vedľa seba. Časť, ktorá sa nezhoduje, bude zvýraznená:

Ako porovnať dva súbory pomocou colordiff:

Ďalším prístupom je akési rozšírenie súboru rozdiel príkaz. Porovnanie môžete lepšie identifikovať tak, že k nemu pridáte farby. Na inštaláciu použite:

$sudovýstižnýInštaláciaColordiff

Na porovnanie súborov použite:

$colordiff test_file_1.txt test_file_2.txt

Môžete nahradiť rozdiel s Colordiff na získanie štandardného výstupu súboru rozdiel príkaz vo farebnom formáte.

Záver:

Na porovnanie súborov v systéme Linux a dokonca aj v systéme macOS sa použitý nástroj nazýva diff. Obslužný program diff porovnáva dva súbory a poskytuje informácie o rozdieloch medzi týmito dvoma súbormi. Vývojári používajú na vytváranie opravných súborov predovšetkým príkaz diff.

V tejto príručke sme dôkladne prediskutovali rozdiel príkaz a ako ho použiť na porovnanie dvoch súborov s rôznymi možnosťami. Naučili sme sa aj používať Colordiff aby boli rozdiely v súboroch rozpoznateľnejšie. Ak sa vám ale nástroj na termináli zdá ťažko použiteľný, existujú aj niektoré nástroje založené na GUI, ako napríklad Kompare, DiffMerge, Meld-Diff Tool a Diffuse-GUI Giff Tool.