GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz Linux diff

Úvod

Linux diff příkaz se používá k porovnání dvou souborů řádek po řádku a zobrazení rozdílu mezi nimi. Tento nástroj příkazového řádku uvádí změny, které je třeba provést, aby byly soubory identické.

Přečtěte si další informace o diff příkaz a jeho možnosti se snadno srozumitelnými příklady.

syntaxe diff

Syntaxe pro použití diff příkaz je:

diff [option] file1 file2

Syntaxe výstupu

Při práci s diff , je důležité vědět, jak interpretovat výstup, který se skládá z:

  • Výstup začínající < odkazuje na obsah v prvním souboru.
  • Výstup začínající > odkazuje na obsah ve druhém souboru.
  • Čísla řádků odpovídající prvnímu souboru.
  • Zvláštní symbol. Speciální symboly označují, jak je třeba upravit první soubor, aby odpovídal druhému souboru. Výstup může zobrazovat:
    • a (přidat)
    • c (změnit)
    • d (smazat)
  • Čísla řádků odpovídající druhému souboru.

Příklad rozdílu

Ukázat, jak diff příkaz funguje, vytvořili jsme dva vzorové soubory a porovnali jejich obsah.

Vytvořte dva vzorové soubory

1. Nejprve pomocí terminálu vytvořte soubor pro Linux s názvem example1.txt . Používáme textový editor Nano, ale můžete použít libovolný textový editor.

sudo nano example1.txt

2. Jakmile textový editor vytvoří a otevře soubor, přidejte do něj následující řádky:

Apple
Orange
Banana
Watermelon
Chery

3. Uložte a ukončete soubor – podržte Ctrl + X a potvrďte stisknutím Y .

4. Dále vytvořte example2.txt soubor spuštěním:

sudo nano example2.txt

5. Přidejte do souboru následující obsah:

Orange
Peach
Apple
Banana
Melon
Cherry

6. Uložte změny a ukončete.

Porovnejte soubory s příkazem diff

1. Se dvěma ukázkovými soubory na místě použijte diff příkaz, abyste viděli, jak se liší a jak je učinit identickými:

diff example1.txt example2.txt 

Výstup obsahuje pokyny, jak upravit první soubor tak, aby měl stejný obsah jako v example2.txt . Podívejme se na výstup ukázkových souborů a dekódujeme pokyny.

  • 1d0 – První řádek (1 ) z prvního souboru by měl být smazán (d ). Pokud ne, zobrazí se na řádku 0 ve druhém souboru.
  • < Apple –Obsah, který potřebujete smazat (jak je uvedeno 1d0 ).
  • 2a2,3 – V řádku 2 z prvního souboru byste měli přidat (a ) řádky 2 a 3 (2,3 ) z druhého souboru.
  • > Peach , > Apple – Obsah, který potřebujete přidat (jak je uvedeno v 2a2,3 ).
  • 4c5 – Čtvrtý řádek (4 ) z prvního souboru by měl být změněn (c ) na pátý řádek (5 ) z druhého souboru.
  • < Watermelon – Obsah, který potřebujete změnit.
  • > Melon – Na co to potřebujete změnit.

Možnosti rozdílů

Bez dalších možností diff zobrazí výstup ve výchozím formátu. Existují způsoby, jak tento výstup upravit, aby byl srozumitelnější nebo použitelnější pro váš případ použití. Přečtěte si další informace o diff možnosti příkazů.

Možnost -c

Kontextový formát je diff možnost nástroje příkazového řádku, která vypíše několik řádků kontextu kolem řádků, které se liší.

Chcete-li zobrazit rozdíl mezi soubory v kontextu, použijte příkaz:

diff -c file1 file2

Podívejte se na výstup pro ukázkové soubory v kontextovém formuláři na obrázku níže.

Řádky zobrazující informace o prvním souboru začínají *** , zatímco řádky označující druhý soubor začínají --- .

První dva řádky zobrazují název a časové razítko obou souborů:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

**************** - se používá pouze jako oddělovač.

Před výpisem řádků z každého souboru začíná výstup rozsahem řádků souborů:

***  1,5 ****
---  1,6 ----

Zbývající řádky vypisují obsah souborů. Začátek každého řádku uvádí, jak upravit soubor example1.txt aby byl stejný jako example2.txt . Pokud řádek začíná:

- (mínus) – je potřeba jej smazat z prvního souboru.
+ (plus) – je třeba přidat do prvního souboru.
! (vykřičník) – je třeba jej změnit na odpovídající řádek z druhého souboru.

Pokud není žádný symbol, řádek zůstává stejný.

Ve výše uvedeném příkladu byste proto měli odstranit Apple z prvního řádku nahraďte Watermelon s Melon ve čtvrtém řádku a přidejte Peach a Apple na řádky dva a tři.

Možnost -u

Jednotný formát je možnost, kterou můžete přidat k zobrazení výstupu bez jakýchkoli nadbytečných kontextových řádků. Chcete-li to provést, použijte příkaz:

diff -u file1 file2

Nyní se podívejme na výstup pro ukázkové soubory v jednotném formátu:

Řádky zobrazující informace o prvním souboru začínají --- , zatímco řádky označující druhý soubor začínají +++ .

První dva řádky zobrazují název a časové razítko obou souborů:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

@@ -1,5 +1,6 @@ - zobrazuje rozsah řádků pro oba soubory.

Na řádcích níže je zobrazen obsah souborů a jak upravit soubor example1.txt aby byl shodný s example2.txt . Když řádek začíná:

- (mínus) – je potřeba jej smazat z prvního souboru.
+ (plus) – musí být přidán do prvního souboru.

Pokud není žádný symbol, řádek zůstává stejný.

Ve výše uvedeném příkladu dává výstup pokyn, že Apple a Watermelon by měl být odstraněn, zatímco Peach , Apple a Watermelon by měl být přidán.

Možnost -i

Ve výchozím nastavení diff rozlišuje velká a malá písmena. Pokud chcete, aby se malá a velká písmena ignorovala, přidejte -i možnost k příkazu:

diff -i file1 file2

Pokud například vytvoříme jeden soubor s následujícími řádky:

Apple
Orange
Banana
Watermelon
Cherry

A další soubor s obsahem:

Apple
orange
Banana
watermelon
Cherry

Výstup bez dalších možností ukazuje, že mezi soubory jsou rozdíly, a poskytuje pokyny, jak je upravit.

Pokud však přidáte -i možnost, neexistuje žádný výstup, protože příkaz nezjistil žádné rozdíly.

– možnost verze

Chcete-li zkontrolovat verzi diff běžící na vašem systému spusťte příkaz:

diff --version

–možnost nápovědy

Pro výstup souhrnu diff běh použití:

diff --help

Další možnosti rozdílů

Další možnosti, které se diff podporuje:

-a / --text Zobrazit soubory jako text a porovnat je řádek po řádku.
-b / --ignore-space-change Při porovnávání souborů ignorujte prázdné znaky.
-B / --ignore-blank-lines<code> Při porovnávání souborů ignorujte prázdné řádky.
--binary Porovnejte a zapište data v binárním režimu.
-d --minimal Upravte algoritmus (například za účelem nalezení menší sady změn).
-e / --ed Nastavte výstup jako platný ed skript.
-E / --ignore-tab-expansion Při porovnávání souborů ignorujte příponu karty.
-l / --paginate Spusťte výstup přes pr k jeho stránkování.
-N / --new-file Považujte chybějící soubor za přítomný, ale prázdný.
-q / --brief Vytiskne, zda se soubory liší bez zadání podrobností.
-s / --report-identical-files Výstup, když jsou soubory identické.
-w / --ignore-all-space Při porovnávání souborů ignorujte mezery.

Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz Tar v Linuxu

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz md5sum v Linuxu

  3. Jak používat příkaz id v Linuxu

  1. Jak používat příkaz xargs pro Linux

  2. Jak používat Linuxový příkaz tee

  3. Jak používat horní příkaz v Linuxu