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.txtBemutatá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.