Vo svete Linuxu je správa a porovnávanie súborov bežnou úlohou systémových administrátorov aj vývojárov. Schopnosť porovnávať súbory riadok po riadku je rozhodujúca pre identifikáciu rozdielov, ladenie kódu a zabezpečenie integrity údajov. Jedným mocným nástrojom, ktorý uľahčuje tento proces, jediff>príkaz. V tomto článku sa pozrieme na to, ako používaťdiff>príkaz na porovnanie súborov riadok po riadku v systéme Linux.
Obsah
- Základná syntax príkazu diff
- Možnosti dostupné v príkaze diff
- Praktická implementácia Ako porovnávať súbory riadok po riadku v Linuxe? :
- Porovnanie dvoch súborov
- Odstránenie riadku v súboroch pomocou príkazu diff
- Zobrazenie rozdielov v kontextovom režime
- Zobrazenie rozdielov v zjednotenom režime
- Porovnávanie medzi súbormi bez rozlišovania malých a veľkých písmen
- Zobrazuje sa rozdielna verzia
Pochopenie príkazu diff
diff znamená rozdiel .diff>command je všestranný nástroj, ktorý je predinštalovaný vo väčšine distribúcií Linuxu. Jeho primárnym účelom je porovnať obsah dvoch súborov a zobraziť rozdiely medzi nimi. Príkaz poskytuje komplexný spôsob zvýraznenia zmien, doplnení a vymazaní v jasnom a čitateľnom formáte.
Tento príkaz sa používa na zobrazenie rozdielov v súboroch porovnaním súborov riadok po riadku. Na rozdiel od svojich kolegov cmp a comm , hovorí nám, ktoré riadky v jednom súbore majú byť zmenené, aby boli tieto dva súbory identické.
Dôležité je zapamätať si to dif používa určité špeciálne symboly a inštrukcie ktoré sú potrebné na vytvorenie identických dvoch súborov. Povie vám pokyny, ako zmeniť prvý súbor, aby sa zhodoval s druhým súborom.
Základná syntax príkazu diff
Základná syntaxdiff>príkaz je nasledovný:
diff [OPTION]... FILE1 FILE2>
Tu, ' FILE1`> a ' FILE2`> sú dva súbory, ktoré chcete porovnať.
' OPTION`> príznak vám umožňuje prispôsobiť správanie ` diff`> príkaz.
Možnosti dostupné v príkaze diff
| Možnosť prevod reťazca na int | Popis |
|---|---|
|
| Výstupné rozdiely v kontextovom režime |
|
| Rozdiely vo výstupe v zjednotenom režime (výstižnejšie) |
|
| Vykonajte porovnanie bez ohľadu na veľkosť písmen |
| –ignorujte celý priestor formátovať dátum v jave | Pri porovnávaní čiar ignorujte medzery |
| – stručné | Výstup iba v prípade, že sa súbory líšia, žiadne podrobnosti |
| - rekurzívne | Rekurzívne porovnávať adresáre |
|
| Zobrazte výstup vo formáte vedľa seba |
Praktická implementácia Ako porovnávať súbory riadok po riadku v Linuxe? :
Porovnanie dvoch súborov
Porovnajte súbory riadok po riadku v systéme Linux.
Povedzme, že máme dva súbory s menami a.txt a b.txt obsahujúce 5 indických štátov.
cat a.txt cat b.txt>

zobrazenie obsahu súborov pomocou príkazu cat
Teraz použitím príkazu diff bez akejkoľvek možnosti získame nasledujúci výstup:
diff a.txt b.txt>

porovnávanie súborov riadok po riadku v linuxe
Pozrime sa, čo tento výstup znamená. Prvý riadok dif výstup bude obsahovať:
- čísla riadkov zodpovedajúce prvému súboru,
- Špeciálny symbol a
- Čísla riadkov zodpovedajúce druhému súboru.
Ako v našom prípade, 0a1 čo znamená po riadky 0 (na samom začiatku súboru) musíte pridať Tamilnádu aby sa zhodoval s číslom druhého riadku súboru 1. Potom nám povie, aké riadky sú v každom súbore, pred ktorým je symbol:
- Riadky, ktorým predchádza a < sú riadky z prvého súboru.
- Riadky, ktorým predchádza > sú riadky z druhého súboru.
- Ďalší riadok obsahuje 2,3c3 čo znamená, že z riadku 2 na riadok 3 v prvom súbore je potrebné zmeniť tak, aby zodpovedal riadku číslo 3 v druhom súbore. Potom nám povie tie riadky s vyššie uvedenými symbolmi.
- Tri čiarky (-) stačí oddeliť riadky súboru 1 a súboru 2.
Ako súhrn, aby boli oba súbory identické, najprv pridajte Tamilnádu v prvom súbore úplne na začiatku, aby sa zhodoval riadok 1 druhého súboru po tejto zmene riadok 2 a 3 prvého súboru, t.j. Uttarpradéš a Kalkata s riadkom 3 druhého súboru t.j. Ándhrapradéš . Po tejto zmene riadok 5 prvého súboru t.j. Džammú a Kašmír s riadkom 5 druhého súboru t.j. Uttarpradéš .
Odstránenie riadku v súboroch pomocou príkazu diff
Zvážte scenár, kdediff>označuje potrebu vymazať riadok. Vzhľadom na dva súbory,a.txt>ab.txt>:
orezanie reťazca javascript

zobrazenie obsahu súborov pomocou príkazu cat
diff a.txt b.txt>

Odstránenie riadku v súbore
Tu hore výstup 3d2 znamená vymazať 3. riadok prvého súboru t.j. Telangana tak, že oba súbory synchronizovať na riadku 2.
Zobrazenie rozdielov v kontextovom režime
Ak chcete zobraziť rozdiely v kontextovom režime, použite -c možnosť. Skúsme to pochopiť na príklade, máme dva súbory súbor1.txt a súbor2.txt :

zobrazenie obsahu súborov pomocou príkazu cat
diff -c file1.txt file2.txt>

Rozdiel v zobrazení v kontextovom režime
Vo vyššie uvedenom výstupe:
- Prvý súbor je označený `
***`>a druhý súbor je označený `---`>. - Riadok s `
***************`>slúži ako oddeľovač. - Prvé dva riadky poskytujú informácie o súbore 1 a súbore 2, pričom zobrazujú názov súboru, dátum úpravy a čas úpravy.
- Potom tri hviezdičky „
***`>za nimi nasleduje rozsah riadkov od prvého súboru (riadky 1 až 4). Štyri hviezdičky****`>poď ďalej. Obsah prvého súboru sa potom zobrazí so špecifickými indikátormi:- Ak je riadok nezmenený, pred ním sú dve medzery.
- Ak je potrebné zmeniť riadok, uvedie sa pred ním symbol a medzera. Symboly označujú:
-
`+`>: Riadok v druhom súbore, ktorý sa má pridať do prvého súboru pre rovnaké výsledky. -
`-`>: Riadok v prvom súbore, ktorý sa má odstrániť, aby sa dosiahli rovnaké výsledky.
-
- Tri čiarky
---`>za nimi nasleduje rozsah riadkov z druhého súboru (riadky 1 až 4), oddelené čiarkou. Štyri čiarky----`>a zobrazí sa obsah druhého súboru.
Zobrazenie rozdielov v zjednotenom režime
Ak chcete zobraziť rozdiely v zjednotenom režime, použite -v možnosť. Je to podobné ako kontextový režim, ale je nezobrazuje žiadne nadbytočné informácie alebo zobrazuje informácie v stručnej forme.

zobrazenie obsahu súborov pomocou príkazu cat
diff -u file1.txt file2.txt>

Rozdiel v zobrazení v zjednotenom režime
Vo vyššie uvedenom výstupe:
hrubá bodka
- Prvý súbor je označený `
---`>a druhý súbor je označený `+++`>. - Prvé dva riadky poskytujú informácie o súbore 1 a súbore 2 vrátane dátumu a času úpravy.
- Potom, `
@@ -1>`,`>4 +1`>,`>4 @@`>označuje rozsah riadkov pre oba súbory. V tomto prípade predstavuje riadky 1 až 4 v oboch súboroch. - Nasledujúce riadky predstavujú obsah súborov so špecifickými indikátormi:
- Nezmenené riadky sa zobrazia bez predpony.
- Riadky v prvom súbore, ktorý sa má odstrániť, majú predponu
->. - Riadky v druhom súbore, ktorý sa má pridať, majú predponu
+>.
V tomto príklade výstup naznačuje, že aby boli oba súbory identické, riadky obsahujúce mv a comm je potrebné odstrániť z prvého súboru (file1.txt>) a do neho je potrebné pridať riadky obsahujúce diff a comm.
Porovnávanie medzi súbormi bez rozlišovania malých a veľkých písmen
V predvolenom nastavení je ` diff`> rozlišuje veľké a malé písmená. Ak chcete vykonať porovnanie bez ohľadu na veľkosť písmen, použite znak ` -i`> možnosť:

zobrazenie obsahu súborov pomocou príkazu cat
Thediff>príkaz sa potom použije na porovnanie týchto súborov s-i>možnosť, vďaka ktorej sa pri porovnaní nerozlišujú malé a veľké písmená.
diff -i file1.txt file2.txt>

Porovnávanie bez ohľadu na veľkosť písmen
2d1>: Označuje zmenu v riadku 2 prvého súboru (file1.txt>). Thed>znamená vymazať a hovorí o odstránení riadku 2 z prvého súboru.>: Tento riadok označuje obsah riadku, ktorý sa má vymazať. V tomto prípade je to mv.
3a3>: Označuje pridanie v riadku 3 prvého súboru (file1.txt>). Thea>znamená pridať a hovorí, že treba pridať riadok na pozíciu 3.>rozdiel>: Tento riadok predstavuje obsah, ktorý sa má pridať. V tomto prípade je to rozdiel.
Stručne povedané, výstup nám hovorí, že na to, aby boli oba súbory identické (ignorujeme veľké a malé písmená), musíme z prvého súboru odstrániť riadok obsahujúci mv (file1.txt>) a pridajte riadkový rozdiel na rovnakú pozíciu. Thediff>príkaz, s-i>možnosť, umožňuje porovnanie bez ohľadu na veľkosť písmen, vďaka čomu sa mv a MV počas analýzy považujú za rovnaké.
Zobrazovaniediff>Verzia
Ak chcete skontrolovať verziu ` diff`> nainštalovaný vo vašom systéme, použite ` --version`> možnosť:
diff --version>

Zobrazuje sa verzia príkazu diff
Tento príkaz poskytuje informácie o verzii, licenciách a autoroch súboru ` diff`> užitočnosť.
Často kladené otázky o príkaze diff – FAQ
Ako môžem použiťdiff>príkaz na porovnanie dvoch súborov riadok po riadku v systéme Linux?
Na porovnanie dvoch súborov riadok po riadku pomocou
diff>príkaz, jednoducho použite nasledujúcu syntax:diff file1.txt file2.txt>Tento príkaz zobrazí rozdiely medzi týmito dvoma súbormi, pričom zvýrazní pridania, vymazania a úpravy.
java rozdeliť reťazec podľa oddeľovača
Môžem ignorovať rozdiely medzi medzerami pri porovnávaní súborov sdiff>príkaz?
Áno,
diff>príkaz poskytuje-w>alebo--ignore-all-space>možnosť ignorovať rozdiely medzi medzerami. Napríklad:diff -w file1.txt file2.txt>Toto je obzvlášť užitočné pri porovnávaní kódových súborov, kde zmeny v odsadení alebo medzier nie sú významné.
Ako môžem vytvoriť súbor opravy pomocoudiff>príkaz?
Ak chcete vytvoriť súbor opravy predstavujúci rozdiely medzi dvoma súbormi, použite príkaz
-u>možnosť a presmerovať výstup do súboru:diff -u file1.txt file2.txt>mypatch.patch>Vygenerovaný opravný súbor je možné použiť neskôr na synchronizáciu iného súboru so zmenami.
V čom je jednotný formátdiff>výstup a ako sa líši od kontextového formátu?
Jednotný formát (`
-u`>možnosť) v `diff`>výstup poskytuje stručnejšie a čitateľnejšie znázornenie rozdielov v porovnaní s kontextovým formátom (`-c`>možnosť). Zobrazuje zmeny v kompaktnejšej forme, čo uľahčuje pochopenie úprav medzi súbormi.
Ako môžem rekurzívne porovnať dva adresáre v systéme Linux pomocoudiff>príkaz?
Na rekurzívne porovnanie dvoch adresárov a ich obsahu použite `
-r`>alebo '--recursive`>možnosť sdiff>príkaz:diff -r directory1/ directory2/>Tento príkaz porovnáva všetky súbory v zadaných adresároch a poskytuje podrobné informácie o rozdieloch.
Záver
Vo svete Linuxu je porovnávanie súborov bežnou úlohou systémových administrátorov a vývojárov. ' diff> príkaz je užitočný nástroj, ktorý pomáha v tomto procese. Tento článok skúma, ako používať ` diff`> na porovnanie súborov riadok po riadku v systéme Linux. Zahŕňa základnú syntax, dôležité možnosti, ako je kontextový režim a jednotný režim, a praktické aplikácie, ako je vytváranie opravných súborov a rekurzívne porovnávanie adresárov. Či už ladíte kód alebo zabezpečujete integritu súboru, rozumiete a ovládate ` diff`> príkaz je nevyhnutný pre efektívnu správu súborov v systéme Linux.