GNU/Linux >> Znalost Linux >  >> Linux

11 Příklady příkazů Linux diff3 (Porovnejte 3 soubory řádek po řádku)

Jak již víte, Linuxový příkaz diff porovnává dva soubory.

Linuxový nástroj diff3 však porovnává tři soubory a je také schopen sloučit rozdíl mezi dvěma soubory do třetího. V tomto článku porozumíme použití příkazu diff3 prostřednictvím několika příkladů.

Základní syntaxe příkazu diff3 je:

08

1. Základní výstup Diff3

Pro tento příklad použijte tyto tři soubory:parent.txt, your.txt a mine.txt.

17

Nyní, když je příkaz diff3 spuštěn přes tyto tři soubory:

25

Vidíme, že výstup obsahuje informace o porovnání všech těchto tří souborů. Ve výše uvedeném výstupu:

  • Úplně první řádek „====“ znamená, že se všechny tři soubory liší.
  • Dále, řádek '1:1,2c' znamená, že pro první (1:) soubor zadaný jako argument diff3 (v našem případě parent.txt) jsou řádky v rozsahu od jedné do dvou (1,2 ) se liší ve srovnání s ostatními dvěma soubory a je třeba je změnit (c) a tyto dva řádky jsou také zobrazeny na dalších dvou řádcích výstupu.
  • Podobně lze porozumět „2:1,2c“ a „3:1,2c“.

Vezměte prosím na vědomí, že kromě použití nástroje diff3 je také užitečné pochopit, jak používat diff, colordiff, wdiff nebo vimdiff pro vaše typické porovnání dvou souborů.

2. Pokud jsou dva ze tří souborů podobné

V tomto příkladu předpokládejme, že soubory mine.txt a parent.txt jsou naprosto stejné.

39

A diff3 je nyní spuštěn přes tyto tři soubory:

47

Hned první řádek ‚====3‘ znamená, že tentokrát je soubor číslo 3, tj. your.txt, odlišný od ostatních dvou. To je vidět i ve výstupu.

3. „c“ je pro změnu, zatímco „a“ je pro připojení

Doposud jsme ve výstupu viděli abecedu „c“. Toto písmeno znamená ‚změnu‘ požadovanou v řádcích/textu. Pokud se zobrazí abeceda „a“, znamená to, že je třeba připojit řádek.

Vezměme si další příklad:

55

Nyní spusťte diff3 na těchto třech souborech:

68

Výše uvedený výstup znamená, že změna v souboru3 (tj. váš.txt) musí být připojena k souboru1 (mine.txt) a souboru2 (parent.txt), aby byly všechny tři soubory podobné. Alternativně lze druhý řádek v souboru your.txt změnit(c), aby byly všechny tři soubory podobné.

4. Výstup překrývajících se změn pomocí volby -x

Parametr -x lze použít k výstupu změn, které způsobují překrývání. Zde záleží na pořadí jmen souborů uvedených jako argument pro diff3. Například:

70

znamená, že chcete v souboru mine.txt sloučit změny, které by změnily rodičovský.txt na váš.txt

Vezměme si příklad:

87

Spustit diff3 nyní:

97

Vidíme tedy, že
t výstup říká, že třetí řádek souboru mine.txt se musí změnit na ‚bye‘, aby se sloučily změny, které by změnily rodičovský.txt na váš.txt

5. Výstup nesloučených změn pomocí volby -e

Volba -e může být použita pro výstup nesloučených změn z rodičovského.txt na váš.txt do mine.txt.
S ohledem na stejné soubory jako ve výše uvedeném příkladu:

104

Vidíme tedy, že výstup ukazuje nesloučené změny.

6. Výstup sloučeného souboru pomocí volby -m

Sloučený soubor obsahující obsah všech tří souborů lze vytvořit pomocí volby -m. Pokud jsou například následující tři soubory:

112

Nyní, pokud je diff3 spuštěn pomocí volby -m :

127

Takže výše uvedený výstup ukazuje obsah sloučeného souboru, který má sloučený obsah ze všech tří souborů dodaných jako argumenty pro diff3.

7. Porozumění konfliktům pomocí volby -m

Vytváření sloučeného souboru (ze tří souborů) není vždy hračkou (jak je ukázáno ve výše uvedeném příkladu).

Zvažte obsah vstupního souboru níže:

131

Pokud je diff3 spuštěn nad soubory výše, zobrazí se následující výstup:

143

Zde jsou první dva řádky nespornou součástí sloučeného souboru, ale skutečný konflikt je zobrazen mezi <<<<<<>>>>>> spolu s názvy a obsahem souborů.

8. Přijměte jeden argument z stdin pomocí „-‘

Znak „-“ lze použít místo kteréhokoli z názvů souborů pro přijetí vstupu z stdin pro tento argument.

156

Jak můžeme vidět, když byl spuštěn výše uvedený příkaz, obsah třetího souboru byl dán prostřednictvím stdin. Všimněte si, že po zadání obsahu souboru ze stdin je třeba stisknout kombinaci kláves ctrl+d, abyste získali výstup diff3.

9. diff3 používá nástroj diff k porovnání souborů

Ačkoli se diff3 chlubí porovnáním 3 souborů, ve skutečnosti interně používá nástroj diff k provádění srovnání mezi dvěma soubory. To lze potvrdit předáním spustitelného souboru jako vstupního argumentu:

163

Ve výše uvedeném výstupu tedy vidíme chybu příkazu diff3, která říká, že pomocný program „diff“ selhal.

10. Určete rozdílový program pomocí volby –diff-program

Příkaz diff3 poskytuje flexibilitu poskytování programu diff jako argumentu, takže stejný lze použít k porovnání souborů a poskytnutí výsledků, které může použít diff3. Této funkce je dosaženo použitím volby –diff-program.

176

11. Zacházejte se všemi soubory jako s textem pomocí volby -a

Jak můžete vidět ve výše uvedeném příkladu 9, když jsme předali netextový soubor (spustitelný soubor a.out), pak diff3 vrátil chybu. Ale pokud chceme říci diff3, aby porovnával i netextové soubory, pak lze použít volbu -a, která řekne diff3, aby považoval všechny vstupní soubory za textové soubory. Například:

183

Takže výstup výše ukazuje, že diff3 se pokusil porovnat dokonce i spustitelný soubor, který jej považoval za textový soubor.

Další články o rozdílech

  • Nejlepší 4 nástroje pro odlišení souborů na UNIX / Linux – Diff, Colordiff, Wdiff, Vimdiff
  • BZ je snadné! bzdiff příklad
  • Porovnání vizuálních souborů s Vimdiff – je to rozdíl!
  • Síla příkazů Z – příklady Zdiff

Linux
  1. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  2. 7 Příklady příkazů Patch pro použití souborů oprav rozdílů v systému Linux

  3. V příkladech příkazů v Linuxu

  1. Příkaz mv v Linuxu:7 základních příkladů

  2. soubor Příklady příkazů v Linuxu

  3. Nahrávání souborů na účet S3 z příkazového řádku Linuxu

  1. Příklady příkazů Linux tail

  2. 5 příkladů příkazů Wget ke stažení souborů v Linuxu.

  3. Příklady příkazů dd v Linuxu