Linuxový příkaz diff analyzuje soubor řádek po řádku a poskytuje výstup seznamu změn provedených mezi dvěma soubory.
Příkaz diff je zkratka pro rozdíl, což v podstatě udává rozdíly mezi dvěma soubory .
Na rozdíl od cmp
(porovnat) a comm
příkazy, diff zvýrazní konkrétní řádek, který je třeba změnit, aby odpovídal ostatním souborům.
Jedna věc, na kterou správci Linuxu nemohou zapomenout, je, že diff používá symboly a instrukce, aby byl efektivnější.
Specifické symboly přikazují příkazu změnit soubor určitým způsobem, aby odpovídal druhému.
Speciální symboly ve výstupu příkazu diff:
- a:přidat
- c:změna
- d:smazat
Linuxová syntaxe příkazu diff
diff [options] File1 File2
Podívejme se na příklady použití příkazů diff.
Případ 1:Změna
Předpokládejme, že máme dva soubory:x.txt a y.txt
x.txt obsahuje následující obsah.
California
Miami
Ohio
Kansas
Texas
y.txt obsahuje následující obsah.
California
Nevada
Georgia
Kansas
Texas
Nyní použijte příkaz diff k porovnání mezi dvěma soubory, jak je znázorněno.
$ diff x.txt y.txt
Ukázkový výstup
Podívejme se na výstup podrobněji.
2,3c2,3
řádek znamená, že řádky 2 a 3 z prvního souboru je třeba změnit, aby odpovídaly řádkům 2 a 3 z druhého textového souboru.
Vysvětlení symbolů výstupu příkazu diff
Podívejme se krátce na různé symboly, které se ve výstupu vyskytují.
- Symbol menší než označuje řádky z prvního řádku
- Symbol větší než označuje řádky z druhého řádku
a - Denotes that text was added to the file
c - Denotes that changes were made in the file
d - Indicates that the line was expunged or deleted
Podívejme se na další příklad.
Případ 2:Přidání
Máme dva textové soubory:
Soubor soubor 1.txt má následující obsah.
Linux is a great operating system
It's free and opensource
It's light and stable
I would highly recommend it
soubor2.txt má následující obsah.
Linux is a great operating system
It's free and opensource
It's light and stable
Oh ! It can be installed on almost any PC hardware
I would highly recommend it
K porovnání obou souborů použijte příkaz diff.
$ diff file1.txt file2.txt
Ukázkový výstup
Z výše uvedeného výstupu 3a4
znamená, že za řádek 3 z prvního souboru je třeba přidat další řádek, aby odpovídal řádku 4 z druhého souboru .
Případ 3:Smazání
Zvažte dva soubory, jak je uvedeno níže.
soubor3.txt s následujícím obsahem.
Apples
Oranges
Mangoes
Peaches
Bananas
Grapes
A file4.txt který má následující obsah.
Apples
Oranges
Mangoes
Bananas
Grapes
Opět použijte příkaz diff k porovnání obou souborů.
$ diff file3.txt file4.txt
Ukázkový výstup
Zde je výstup 4d3 znamená, že vymažete 4. řádek z prvního souboru, aby se synchronizoval s druhým souborem na řádku číslo 3.
Závěr
Linuxový příkaz diff je jednoduchý nástroj pro porovnání dvou souborů. Je to užitečné při kontrole změn mezi dvěma verzemi textového souboru.