Hogyan lehet összehasonlítani két fájlt Linux alatt

How Compare Two Files Linux



Ha két fájlt szeretne összehasonlítani, és meg akarja fejteni a különbséget, akkor hívja a parancsot diff használt. Ez az útmutató arra összpontosít, hogy az Ön használatát biztosítsa diff parancsot különböző lehetőségekkel, hogy megkapja a különbséget két fájl között.

Szóval, hogyan működik a diff a parancs valóban működik? Az diff parancs összehasonlítja a két fájlt, és megjeleníti a két fájl közötti különbségek listáját. Pontosabban, megadja azon módosítások listáját, amelyeket az első fájlban kell elvégezni, hogy megfeleljen a második fájlnak. Az diff parancsot a programozók is használják, hogy megkapják a különbséget két forráskód fájl között a javítások fejlesztéséhez.







Mielőtt a példákba merülne, vegye figyelembe, hogy a fájlok sorrendje nagyon fontos. Mert a diff parancs kimenetet ad a fájlok sorrendje alapján.



Hogyan használhatjuk a diff parancsot Linuxon a fájlok összehasonlításához:

A szintaxisa diff parancsot az alábbiakban említjük:



$diff [lehetőségek] [fájl1] [fájl2]

Először hozzon létre két fájlt. A nevével szöveges fájlokat hozok létre teszt_fájl_1.txt és teszt_fájl_2.txt . Ezek a fájlok kis eltéréssel tartalmaznak tartalmat:





Most használja a következő parancsot a különbség kiszámításához:



$diffteszt_fájl_1.txt teszt_fájl_2.txt

A szabványos kimenet a parancsban említett fájlok sorrendjének megfelelő sorokat jelenítette meg. Tehát dekódoljuk a kimenetet:

A fájlok összehasonlítása címkézett, és minden címke mindkét oldalán van egy szám. A formátum a következő:

[1. fájl sorszáma] [Címke (a, c, d)] [2. fájl sorszáma]

Három címke van:

  • nak nek - Hozzáadás: Tartalom hozzáadása az első fájlhoz a második fájlhoz való szinkronizáláshoz.
  • c - Módosítás: Azt jelzi, hogy az első fájl tartalmában módosítani kell, hogy megfeleljen a második fájlnak.
  • d - Törlés: Tartalom eltávolítása az első fájlból, hogy megfeleljen a másodiknak.

2d1 azt jelzi, hogy törölni kell az első fájl 2. sorszámát, hogy megfeleljen a második fájlnak az 1. sorból.

Hasonlóképpen, 4c3 azt jelenti, hogy módosítást kell végrehajtani az első fájl negyedik sorában, hogy megfeleljen a második fájl 3. sorának, mivel mindkét sor kissé eltér.

Van egy másik módszer a különbség megtekintésére, használja a diff parancsot a -és választási lehetőség:

$diff -és -BAN BEN 60teszt_fájl_1.txt teszt_fájl_2.txt

A fenti kimenetben a teszt_fájl_1.txt jelenik meg a bal oldalon, míg a tartalom text_file_2.txt jelenik meg a jobb oldalon. A különbséget szimbólumok jelzik:

  • | - A sor más a második fájlban
  • > - A sor további fájl a második fájlban
  • <— Line has been deleted from the second file

A -W jelzi a két fájl tartalma közötti szélességet. Ha külön kívánja látni és látni szeretné a különbséget, használja a következőket:

$diff -és -BAN BEN 60 --suppress-common-linesteszt_fájl_1.txt teszt_fájl_2.txt

A kimenet egy sorban történő elérése a diff paranccsal:

Ha a címkézett módszert nehezen tudja dekódolni, akkor van egy egyszerűbb módszer. Használni a -q opció a diff parancs egy sorban adja ki a kimenetet. Nos, minden további információ nélkül:

$diff -qteszt_fájl_1.txt teszt_fájl_2.txt

Ha a fájlok eltérnek, akkor a fenti parancs kimenetet ad. Ha a fájlok azonosak, akkor nem lesz kimenet. Ennek bemutatására létrehozok egy példányt teszt_fájl_1.txt használatával:

$cpteszt_fájl_1.txt teszt_fájl_3.txt

Új fájl jön létre a következő nevével teszt_fájl_3.txt ugyanazt a tartalmat tartalmazza teszt_fájl_1.txt van. Most használja:

$diff -qteszt_fájl_1.txt teszt_fájl_2.txt

Mivel mindkét fájl hasonló tartalommal rendelkezik, ezért nem lesz kimenet.

Hogyan lehet ellenőrizni a fájlok közötti különbséget kontextus módban a diff parancs használatával:

Az összehasonlítás kontextus módban történő eléréséhez a -c opciót a diff parancs:

$diff -cteszt_fájl_1.txt teszt_fájl_2.txt

Boncoljuk a kimenetet.

A különbség fenntartása érdekében az első fájlt *** jelzi a létrehozás dátumával és idejével együtt, míg a második fájlt -.

A következő sor az összehasonlítás során figyelembe vett sorok sorát jelöli. Az első fájl esetében az *** 1.6 **** a második fájl esetében pedig az -1,5- :

A különbséget szimbólumok jelzik:

  • +: A vonal nincs jelen az első fájlban. Helyezze be az első fájlba, vagy távolítsa el a második fájlból, hogy megfeleljen mindkét fájlnak.
  • -: A sor létezik az első fájlban, de nem a második fájlban. Próbálja beilleszteni a második fájlba, vagy távolítsa el az elsőből, hogy megfeleljen mindkét fájlnak.
  • ! : A sort módosítani kell, hogy megfeleljen.

Hogyan lehet ellenőrizni a fájlok közötti különbséget egyesített módban a diff paranccsal:

Az egységes mód meglehetősen hasonlít a kontextus módhoz, de nem tartalmaz redundáns információkat. Az általunk használt zászló az -u :

$diff -uteszt_fájl_1.txt teszt_fájl_2.txt

A kimenetben az első fájlt -, a másodikat +++ jelzi. A második sor azt mutatja, hogy a két fájlban hány sor tekinthető összehasonlításra, majd a törölni, hozzáadni vagy módosítani kívánt tartalmat a hozzájuk tartozó szimbólumokkal együtt. Mindkét fájlban nem lesz szimbólum hasonló sorokkal.

Hogyan lehet figyelmen kívül hagyni a kis- és nagybetűk érzékenységét a diff parancs használatakor:

Ha összehasonlítani szeretné a fájlokat, figyelmen kívül hagyva a kis- és nagybetűket, akkor használja a -én zászló:

$diff -énteszt_fájl_1.txt teszt_fájl_2.txt

Bemutatás céljából elkészítettem a D nak,-nek Mélyen benne az első fájlban kicsi:

Amint az az első parancsban látható, a különbség látható; használata közben -én ez a különbség megszűnt.

Néhány más hasznos lehetőség a diff parancsot az alábbiakban soroljuk fel:

választási lehetőség Leírás
-nak nek Ez az opció az összes fájlt szöveges fájlként kezeli
-B Figyelmen kívül hagyja a módosításokat, ahol a sorok üresek
-ÉS Ez az opció figyelmen kívül hagyja a lapbővítést
-ÉN Figyelmen kívül hagyja azokat a változtatásokat, ahol minden sor megegyezik
-s Kimenetet ad, ha két fájl azonos
-ban ben Figyelmen kívül hagy minden fehér teret
-VAL VEL A sor végén figyelmen kívül hagyja a szóközöket

A Vim Editor használata két fájl összehasonlításához:

Egy másik módszer két fájl összehasonlítására a vimdiff parancs. Ehhez telepítenie kell a vim -et:

$sudotalálótelepítés jöttem

Most két fájl összehasonlításához használja:

$vimdiff teszt_fájl_1.txt teszt_fájl_2.txt

Mindkét fájl egymás mellett nyílik meg. A nem megfelelő rész kiemelésre kerül:

Két fájl összehasonlítása a colordiff használatával:

Egy másik megközelítés egyfajta kiterjesztése diff parancs. Az összehasonlítást jobban azonosíthatóvá teheti színek hozzáadásával. A telepítéshez használja:

$sudotalálótelepítéscolordiff

A fájlok összehasonlításához használja:

$colordiff teszt_fájl_1.txt teszt_fájl_2.txt

Cserélheti diff val vel colordiff a szabványos kimenet eléréséhez diff parancsot színes formátumban.

Következtetés:

A Linuxban és még a macOS -ban lévő fájlok összehasonlításához a használt segédprogramot diff -nak hívják. A diff segédprogram két fájlt hasonlít össze, és információt nyújt a két fájl közötti különbségekről. A fejlesztők elsősorban a diff parancsot használják javítófájlok létrehozásához.

Ebben az útmutatóban alaposan megvitattuk a diff parancsot és annak használatát két fájl összehasonlítására különböző lehetőségekkel. Megtanultuk a használatát is colordiff hogy a fájlkülönbségek felismerhetőbbek legyenek. De ha a terminál-alapú segédprogramot nehéznek találja, vannak olyan GUI-alapú eszközök is, mint a Kompare, a DiffMerge, a Meld-Diff Tool és a Diffuse-GUI Giff Tool.