GNU/Linux >> Znalost Linux >  >> Linux

Výukový program příkazů Linux cmp pro začátečníky (7 příkladů)

Bez ohledu na vaši roli, pokud vaše běžná práce zahrnuje práci na příkazovém řádku v Linuxu, můžete se dostat do situace, kdy byste chtěli porovnat dva soubory pomocí nástroje příkazového řádku. Existuje několik nástrojů příkazového řádku, které vám to umožňují, a jedním z nich je 'cmp ' příkaz.

V tomto tutoriálu probereme „cmp“ prostřednictvím snadno srozumitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady a pokyny uvedené v tomto tutoriálu byly testovány na Ubuntu 16.04LTS.

příkaz cmp

Příkaz 'cmp' vám ​​umožňuje provádět porovnání dvou souborů bajt po byte. Nástroj poskytuje několik funkcí ve formě možností příkazového řádku. V tomto tutoriálu probereme některé z klíčových možností, které vám (začátečníkům) poskytnou dobrou představu o tom, jak nástroj funguje.

1. Jak porovnat dva soubory pomocí cmp

V jeho nejjednodušší podobě můžete použít 'cmp' následujícím způsobem:

cmp [file1-name] [file2-name]

Jak již bylo zmíněno, nástroj porovnává dva soubory byte po byte. Jakmile je nalezen rozdíl, nástroj se zastaví a vytvoří výstup, který řekne, ve kterém řádku a bajtu je rozdíl.

Například:

cmp file1.txt file2.txt

Jak můžete vidět na výše uvedeném snímku obrazovky, výstup jasně říká, že soubory se liší v byte 20 na řádku 1.

2. Jak přimět cmp tisknout různé bajty

Pokud chcete, můžete také nastavit, aby „cmp“ zobrazoval různé bajty ve svém výstupu. To lze provést pomocí -b možnost příkazového řádku.

cmp -b [file1] [file2]

Například:

cmp -b file1.txt  file2.txt

V tomto případě, jak můžete vidět na obrázku výše, je rozdíl v 17. bajtu, což je 'l' v souboru1.txt a 'i' v souboru2.txt. Hodnoty 154 a 151 jsou hodnoty pro tyto bajty.

3. Jak docílit toho, aby cmp vynechal některé počáteční bajty z obou souborů

Pokud chcete, můžete také nastavit, aby „cmp“ vynechal určitý počet počátečních bajtů z obou souborů a poté je porovnal. To lze provést zadáním počtu bajtů jako argumentu do -i možnost příkazového řádku.

cmp -i [bajty k přeskočení] [soubor1] [soubor2]

Například:

cmp -i 10 soubor1.txt  soubor2.txt

Všimněte si, že v případech, jako jsou tyto (kde použijete -i k přeskočení bajtů), je bajt, na kterém začíná porovnání, považován za bajt číslo nula.

Nástroj také umožňuje přeskočit různý počet bajtů z obou souborů. To lze provést následujícím způsobem:

cmp -i [bytes-to-skip-from-first-file] : [bytes-to-skip-from-second-file] [file1] [file2]

Například:

cmp -i 4:7 file1.txt file2.txt

4. Jak nastavit, aby cmp zobrazoval pozici bajtu (a hodnotu) pro všechny různé bajty

Pokud chcete, můžete také provést příkaz 'cmp', aby tiskl pozici bajtu a hodnotu bajtu pro všechny různé bajty. K této funkci lze přistupovat pomocí -l možnost příkazového řádku.

cmp -l [file1] [file2]

Například:

cmp -l file1.txt  file2.txt

První sloupec ve výstupu (příklad zobrazený výše) představuje pozici (číslo bajtů) různých bajtů. Druhý sloupec představuje hodnotu bytu odlišného bytu v prvním souboru, zatímco třetí sloupec představuje hodnotu bytu odlišného bytu ve druhém souboru.

5. Jak omezit počet bajtů k porovnání

Nástroj také umožňuje omezit počet bajtů, které chcete porovnávat – například můžete chtít porovnávat maximálně 25 nebo 50 bajtů. To lze provést pomocí -n možnost příkazového řádku.

$ cmp -n [počet bajtů k porovnání]  [soubor1] [soubor2]

Například:

$ cmp -n 25  soubor1.txt  soubor2.txt

6. Jak zobrazit ukazatel průběhu při použití příkazu cmp

Při porovnávání velkých souborů (nebo dokonce oddílů) pomocí „cmp“ můžete chtít vidět průběh probíhajícího porovnávání. To lze provést pomocí příkazu 'pv' spolu s příkazem 'cmp'. Zde je šablona příkazu, kterou můžete použít:

$ pv [file1] | cmp -l [file2] > [output-file]

Například:

$ pv file1.txt | cmp -l file3.txt > output.txt

Všimněte si, že soubor 'output.txt' bude obsahovat veškerý výstup, který příkaz 'cmp' vytváří. Ukazatel průběhu (který můžete vidět na výše uvedeném snímku obrazovky) je vytvářen příkazem 'pv'.

Příkaz 'pv' obvykle není v Linuxu předinstalovaný (alespoň ne na Ubuntu). Můžete jej však snadno nainstalovat pomocí následujícího příkazu:

sudo apt-get install pv

7. Jak zajistit, aby 'cmp' potlačil výstup

Nástroj také umožňuje potlačit výstup, který normálně produkuje. To lze provést pomocí -s možnost příkazového řádku.

$ cmp -s [file1] [file2]

Například:

$ cmp -s file1.txt file2.txt

Tato možnost se může hodit při použití nástroje 'cmp' ve skriptech. Například v závislosti na tom, zda jsou soubory identické nebo ne (což lze zjistit přístupem k ukončovacímu kódu příkazu), možná budete chtít zobrazit vlastní zprávu namísto výstupu, který nástroj normálně vytváří.

Závěr

Většinu možností příkazu „cmp“ jsme probrali v tomto článku, takže si je stačí procvičit, abyste mohli nástroj začít používat ve své každodenní práci. V případě jakýchkoli pochybností nebo dotazů se podívejte na manuálovou stránku 'cmp'.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linux du Command Tutorial pro začátečníky (10 příkladů)

  1. Výukový program Linux echo Command pro začátečníky (5 příkladů)

  2. Linux env Command Tutorial pro začátečníky (5 příkladů)

  3. Návod k příkazu velikosti Linuxu pro začátečníky (6 příkladů)