Ve světě Linuxu je správa a porovnávání souborů běžným úkolem systémových administrátorů i vývojářů. Schopnost porovnávat soubory řádek po řádku je zásadní pro identifikaci rozdílů, ladění kódu a zajištění integrity dat. Jedním mocným nástrojem, který tento proces usnadňuje, jediff>příkaz. V tomto článku prozkoumáme, jak používatdiff>příkaz pro porovnání souborů řádek po řádku v Linuxu.
Obsah
- Základní syntaxe příkazu diff
- Možnosti dostupné v příkazu diff
- Praktická implementace Jak porovnávat soubory řádek po řádku v Linuxu? :
- Porovnání dvou souborů
- Odstranění řádku v souborech pomocí příkazu diff
- Zobrazení rozdílů v kontextovém režimu
- Zobrazení rozdílů v jednotném režimu
- Porovnávání mezi soubory bez ohledu na velikost písmen
- Zobrazení rozdílové verze
Pochopení příkazu diff
diff znamená rozdíl .diff>command je všestranný nástroj, který je předinstalován ve většině distribucí Linuxu. Jeho primárním účelem je porovnat obsah dvou souborů a zobrazit rozdíly mezi nimi. Příkaz poskytuje komplexní způsob, jak zvýraznit změny, doplnění a odstranění v jasném a čitelném formátu.
Tento příkaz se používá k zobrazení rozdílů v souborech porovnáním souborů řádek po řádku. Na rozdíl od svých kolegů cmp a komunikace , říká nám, které řádky v jednom souboru mají být změněny, aby byly dva soubory identické.
Důležité je zapamatovat si to dif používá určité speciální symboly a instrukce které jsou nutné k tomu, aby byly dva soubory identické. Řekne vám pokyny, jak změnit první soubor, aby odpovídal druhému souboru.
Základní syntaxe příkazu diff
Základní syntaxediff>příkaz je následující:
diff [OPTION]... FILE1 FILE2>
Tady, ' FILE1`> a ' FILE2`> jsou dva soubory, které chcete porovnat.
' OPTION`> flag umožňuje přizpůsobit chování ` diff`> příkaz.
Možnosti dostupné v příkazu diff
| Volba | Popis |
|---|---|
|
java zkuste catch | Rozdíly ve výstupu v kontextovém režimu |
|
| Rozdíly ve výstupu v jednotném režimu (výstižnější) |
|
| Proveďte srovnání bez ohledu na velikost písmen |
| –ignorujte celý prostor | Při porovnávání čar ignorujte mezery |
| -stručný | Výstup pouze v případě, že se soubory liší, žádné podrobnosti |
| – rekurzivní | Rekurzivně porovnávat adresáře |
|
přejmenování složky v linuxu | Zobrazte výstup ve formátu vedle sebe |
Praktická implementace Jak porovnávat soubory řádek po řádku v Linuxu? :
Porovnání dvou souborů
Porovnejte soubory řádek po řádku v Linuxu.
Řekněme, že máme dva soubory s názvy a.txt a b.txt obsahující 5 indických států.
cat a.txt cat b.txt>

zobrazení obsahu souborů pomocí příkazu cat
Nyní použitím příkazu diff bez jakékoli možnosti získáme následující výstup:
diff a.txt b.txt>

porovnávání souborů řádek po řádku v linuxu
Pojďme se podívat, co tento výstup znamená. První řádek dif výstup bude obsahovat:
- čísla řádků odpovídající prvnímu souboru,
- Zvláštní symbol a
- Čísla řádků odpovídající druhému souboru.
Jako v našem případě, 0a1 což znamená po řádky 0 (úplně na začátku souboru) musíte přidat Tamil Nadu aby odpovídal druhému souboru s číslem řádku 1. Potom nám řekne, jaké řádky jsou v každém souboru, kterému předchází symbol:
- Řádky, kterým předchází a < jsou řádky z prvního souboru.
- Řádky před > jsou řádky z druhého souboru.
- Další řádek obsahuje 2,3c3 což znamená, že z řádku 2 na řádek 3 v prvním souboru je třeba změnit, aby odpovídal řádku číslo 3 ve druhém souboru. Potom nám řekne ty řádky s výše uvedenými symboly.
- Tři čárky (-) pouze oddělte řádky souboru 1 a souboru 2.
Jako shrnutí, aby byly oba soubory identické, nejprve přidejte Tamil Nadu v prvním souboru na úplném začátku, aby odpovídal řádku 1 druhého souboru po této změně řádku 2 a 3 prvního souboru, tj. Uttarpradéš a Kalkata s řádkem 3 druhého souboru, tj. Ándhrapradéš . Po této změně řádek 5 prvního souboru, tj. Džammú a Kašmír s řádkem 5 druhého souboru, tj. Uttarpradéš .
Odstranění řádku v souborech pomocí příkazu diff
Zvažte scénář, kdediff>označuje nutnost smazat řádek. Vzhledem ke dvěma souborům,a.txt>ab.txt>:

zobrazení obsahu souborů pomocí příkazu cat
diff a.txt b.txt>

Odstranění řádku v souboru
Zde výše uvedený výstup 3d2 znamená smazat řádek 3 prvního souboru, tj. Telangana takže oba soubory synchronizovat na řádku 2.
Zobrazení rozdílů v kontextovém režimu
Chcete-li zobrazit rozdíly v kontextovém režimu, použijte -C volba. Zkusme to pochopit na příkladu, máme dva soubory soubor1.txt a soubor2.txt :

zobrazení obsahu souborů pomocí příkazu cat
diff -c file1.txt file2.txt>

Rozdíl v zobrazení v kontextovém režimu
Ve výše uvedeném výstupu:
- První soubor je označen `
***`>a druhý soubor je označen `---`>. - Řádek s `
***************`>slouží jako oddělovač. - První dva řádky poskytují informace o souboru 1 a souboru 2, zobrazující název souboru, datum úpravy a čas úpravy.
- Za tím tři hvězdičky „
***`>následuje rozsah řádků od prvního souboru (řádky 1 až 4). Čtyři hvězdičky****`>přijď další. Obsah prvního souboru se poté zobrazí se specifickými indikátory:- Pokud je řádek nezměněn, jsou před ním dvě mezery.
- Pokud je třeba řádek změnit, je před ním uveden symbol a mezera. Symboly označují:
-
`+`>: Řádek ve druhém souboru, který má být přidán k prvnímu souboru pro identické výsledky. -
`-`>: Řádek v prvním souboru, který má být odstraněn pro identické výsledky.
-
- Tři čárky'
---`>následuje rozsah řádků z druhého souboru (řádky 1 až 4), oddělený čárkou. Čtyři čárky----`>následovat a zobrazí se obsah druhého souboru.
Zobrazení rozdílů v jednotném režimu
Chcete-li zobrazit rozdíly v jednotném režimu, použijte -v volba. Je to podobné jako kontextový režim, ale je nezobrazuje žádné nadbytečné informace nebo zobrazuje informace ve stručné formě.

zobrazení obsahu souborů pomocí příkazu cat
diff -u file1.txt file2.txt>

Rozdíl ve zobrazení v jednotném režimu
Ve výše uvedeném výstupu:
- První soubor je označen `
---`>a druhý soubor je označen `+++`>. - První dva řádky obsahují informace o souboru 1 a souboru 2, včetně data a času změny.
- Poté, `
@@ -1>`,`>4 +1`>,`>4 @@`>označuje rozsah řádků pro oba soubory. V tomto případě představuje řádky 1 až 4 v obou souborech. - Následující řádky představují obsah souborů se specifickými indikátory:
- Nezměněné řádky jsou zobrazeny bez předpony.
- Řádky v prvním souboru, který se má odstranit, mají předponu
->. - Řádky ve druhém souboru, který se má přidat, mají předponu
+>.
V tomto příkladu výstup indikuje, že aby byly oba soubory identické, je třeba z prvního souboru odstranit řádky obsahující mv a comm (file1.txt>) a do něj je třeba přidat řádky obsahující diff a comm.
Porovnávání mezi soubory bez ohledu na velikost písmen
Ve výchozím nastavení ` diff`> rozlišuje velká a malá písmena. Chcete-li provést srovnání bez ohledu na velikost písmen, použijte ` -i`> volba:

zobrazení obsahu souborů pomocí příkazu cat
Thediff>příkaz se pak použije k porovnání těchto souborů s-i>možnost, díky čemuž se v porovnání nerozlišují velká a malá písmena.
diff -i file1.txt file2.txt>

Porovnávání bez ohledu na velikost písmen
2d1>: Označuje změnu na řádku 2 prvního souboru (file1.txt>). Thed>znamená delete a říká to odstranit řádek 2 z prvního souboru.>: Tento řádek označuje obsah řádku, který má být odstraněn. V tomto případě je to mv.
3a3>: Označuje přidání na řádek 3 prvního souboru (file1.txt>). Thea>znamená přidat a říká přidat řádek na pozici 3.>rozdíl>: Tento řádek představuje obsah, který má být přidán. V tomto případě je to rozdíl.
Stručně řečeno, výstup nám říká, že aby byly oba soubory identické (ignorujeme velká a malá písmena), musíme odstranit řádek obsahující mv z prvního souboru (file1.txt>) a přidejte řádek diff na stejné pozici. Thediff>příkaz, s-i>možnost umožňuje srovnání bez ohledu na malá a velká písmena, takže mv a MV jsou během analýzy považovány za stejné.
Zobrazujidiff>Verze
Chcete-li zkontrolovat verzi ` diff`> nainstalovaný ve vašem systému, použijte ` --version`> volba:
diff --version>

Zobrazení verze příkazu diff
Tento příkaz poskytuje informace o verzi, licencování a autorech souboru ` diff`> utility.
Často kladené otázky k příkazu diff – FAQ
Jak mohu použítdiff>příkaz pro porovnání dvou souborů řádek po řádku v Linuxu?
Chcete-li porovnat dva soubory řádek po řádku pomocí
diff>příkaz, jednoduše použijte následující syntaxi:diff file1.txt file2.txt>Tento příkaz zobrazí rozdíly mezi těmito dvěma soubory, zvýrazní přidání, odstranění a úpravy.
Mohu ignorovat rozdíly mezi mezerami při porovnávání souborů sdiff>příkaz?
Ano,
diff>příkaz poskytuje-w>nebo--ignore-all-space>možnost ignorovat rozdíly mezi mezerami. Například:diff -w file1.txt file2.txt>To je užitečné zejména při porovnávání souborů kódu, kde změny odsazení nebo mezer nejsou významné.
Jak mohu vytvořit soubor opravy pomocídiff>příkaz?
Chcete-li vytvořit soubor opravy představující rozdíly mezi dvěma soubory, použijte
-u>volbu a přesměrujte výstup do souboru:diff -u file1.txt file2.txt>mypatch.patch>Vygenerovaný soubor opravy lze později použít k synchronizaci jiného souboru se změnami.
b plus strom
V čem je jednotný formátdiff>výstup a jak se liší od kontextového formátu?
Jednotný formát (`
-u`>možnost) v `diff`>výstup poskytuje stručnější a čitelnější znázornění rozdílů ve srovnání s kontextovým formátem (`-c`>volba). Zobrazuje změny v kompaktnější podobě, což usnadňuje pochopení změn mezi soubory.
Jak mohu rekurzivně porovnat dva adresáře v Linuxu pomocídiff>příkaz?
Chcete-li rekurzivně porovnat dva adresáře a jejich obsah, použijte `
-r`>nebo '--recursive`>možnost sdiff>příkaz:diff -r directory1/ directory2/>Tento příkaz porovná všechny soubory v zadaných adresářích a poskytne podrobné informace o rozdílech.
Závěr
Ve světě Linuxu je porovnávání souborů běžným úkolem systémových administrátorů a vývojářů. ' diff> command je užitečný nástroj, který v tomto procesu pomáhá. Tento článek se zabývá tím, jak používat ` diff`> pro porovnání souborů řádek po řádku v Linuxu. Pokrývá základní syntaxi, důležité možnosti, jako je kontextový režim a jednotný režim, a praktické aplikace, jako je vytváření záplatových souborů a rekurzivní porovnávání adresářů. Ať už ladíte kód nebo zajišťujete integritu souborů, rozumíte a ovládáte ` diff`> je nezbytný pro efektivní správu souborů v Linuxu.