Pokud chcete v Linuxu vytisknout obsah souboru na stdout, první příkaz, který vás napadne, je cat. Mohou však nastat situace, kdy je požadavkem odstranit určitou část souboru a vytisknout pouze zbytek obsahu. Budete rádi, že existuje nástroj – nazvaný cut - to vám umožní.
V tomto článku budeme diskutovat o tomto nástroji pomocí několika snadno pochopitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady v tomto článku byly testovány na počítači Ubuntu 18.04 LTS.
Příkaz Linux cut
Příkaz cut v Linuxu umožňuje uživatelům odstranit části z každého řádku souborů. Následuje jeho syntaxe:
cut OPTION... [FILE]...
Zde je to, co o tomto nástroji říká manuálová stránka:
Print selected parts of lines from each FILE to standard output.
With no FILE, or when FILE is -, read standard input.
A následují některé příklady ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak tento nástroj funguje.
O1. Jak použít příkaz vyjmout?
Příkaz cut očekává, že uživatel poskytne seznam bajtů, znaků nebo polí. Můžete zadat bajty pomocí volby příkazového řádku -b.
Předpokládejme například, že existuje soubor s názvem file1.txt který obsahuje následující řádek:
abcdefghijklmnopqrstuvwxyz
A chcete zobrazit pouze první tři bajty. Pak v tomto případě můžete použít volbu -b následujícím způsobem:
cut file1.txt -b1,2,3
Výstup bude:
abc
Můžete také zadat rozsah:
cut file1.txt -b1-10
Následuje výstup vytvořený v tomto případě:
abcdefghij
Dále můžete také použít pomlčku (-) s číslem, abyste příkazu cut sdělili, že buď zobrazí všechny bajty po byte v tomto čísle, nebo všechny bajty před byte v tomto čísle.
Například následující příkaz zajistí, že se zobrazí všechny bajty včetně a po bajtu na čísle 5.
cut file1.txt -b5-
A následující příkaz zobrazí prvních 5 bajtů:
cut file1.txt -b-5
Q2. Jak se vypořádat s postavami?
Někdy soubor, který předáte příkazu cut, obsahuje znaky, které jsou větší než jeden bajt. V takovém případě je vhodné použít volbu -c, která nástroji umožní správně pochopit, které znaky chcete zobrazit nebo odstranit.
Například ♣ je speciální znak, který zabírá několik bajtů. Pokud tedy chcete použít příkaz cut na textový proud, který obsahuje tento druh znaků, je lepší použít -c místo -b. Pokud jde o funkčnost, oba -c a -b fungují podobným způsobem.
Q3. Jak funguje střih s oddělovači?
Příkaz vyjmout můžete také nastavit tak, aby fungoval s oddělovači. K tomu můžete použít volbu -d příkazového řádku.
Předpokládejme například, že vstupní soubor obsahuje pole oddělená čárkami:
Howtoforge, HTF, howtoforge.com
FaqForge, FF, faqforge.com
A chcete pouze první a třetí položku, pak to lze provést následujícím způsobem:
cut file1.txt -d, -f1,3
Všimněte si, že volba -f vám umožňuje vybrat pole, která chcete zobrazit.
Závěr
Takže vidíte, že příkaz cut má potenciál ušetřit spoustu vašeho času, pokud úloha zahrnuje selektivní výstup obsahu souboru. Zde v tomto tutoriálu jsme probrali některé základní možnosti příkazového řádku, které tento nástroj nabízí. Chcete-li se dozvědět více, přejděte na manuálovou stránku nástroje.