logo

příkaz cut v Linuxu s příklady

Příkaz cut v linuxu je příkaz pro vyříznutí částí z každého řádku souborů a zapsání výsledku na standardní výstup. Lze jej použít k vyříznutí částí řádku podle pozice bajtu, znaku a pole. Příkaz vyjmout rozřízne řádek a extrahuje text. Volbu je nutné zadat pomocí příkazu, jinak dojde k chybě. Pokud je zadán více než jeden název souboru, pak před daty z každého souboru není uveden jeho název.

Obsah



Syntaxe příkazu cut

Základní syntaxecut>příkaz je:

cut OPTION... [FILE]...>

Kde

`OPTION`> specifikuje požadované chování



` FILE> `>představuje vstupní soubor.

Poznámka : PokudFILE>není specifikováno, ` cut`> čte ze standardního vstupu (stdin).

Možnosti dostupné v příkazu cut

Zde je seznam nejčastěji používaných možností s ` cut`> příkaz:



Volba

Popis

-b, –bytes=SEZNAM

Vybere pouze bajty zadané vLIST>(např.,-b 1-3,7>).

-c, –znaky=SEZNAM

Vybere pouze znaky uvedené vLIST>(např.,-c 1-3,7>).

-d, –delimiter=DĚLIT

PoužitíDELIM>jako znak oddělovače pole namísto znaku tabulátoru.

-f, –fields=LIS

Vybere pouze pole specifikovaná vLIST>, oddělené oddělovacím znakem (výchozí je tabulátor).

-n

Nerozdělujte vícebajtové znaky (bez účinku, pokud-b>nebo-c>je specifikováno).

-doplněk

Invertujte výběr polí/znaků. Vytiskněte pole/znaky, které nejsou vybrány.

Praktické ukázky cut Command

Uvažujme dva soubory s názvem state.txt a capital.txt obsahuje 5 názvů indických států a hlavních měst.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

Bez zadané možnosti zobrazí chybu.

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Extrahovat konkrétní bajty (-b>) Pomocí příkazu cut

-b(bajt): Chcete-li extrahovat konkrétní bajty, musíte použít volbu -b se seznamem čísel bajtů oddělených čárkou. Rozsah bajtů lze také zadat pomocí pomlčky (-). Je nutné zadat seznam čísel bajtů, jinak to způsobí chybu.

Tabulátory a zpětné mezery jsou považovány za znak o velikosti 1 bajtu.

Seznam bez rozsahů :

cut -b 1,2,3 state.txt>
seznam bez rozsahu

seznam bez rozsahu

Seznam s rozsahy:

cut -b 1-3,5-7 state.txt>
seznam s rozsahem

seznam s rozsahem

Používá speciální formulář pro výběr bajtů od začátku do konce řádku:

Speciální formulář: Výběr bajtů od začátku do konce řádku

V tomto případě 1- označuje od 1. bajtu po koncový bajt řádku

cut -b 1- state.txt>
speciální formulář

speciální formulář s volbou -b

V tomto případě -3 označuje od 1. do 3. bajtu řádku

cut -b -3 state.txt>
speciální formulář

speciální forma -b volba

Vyjmout podle znaků (-c>) Pomocí příkazu cut

-c (sloupec): Chcete-li ořezat podle znaků, použijte volbu -c. Tím se vyberou znaky dané volbě -c. Může to být seznam čísel oddělených čárkou nebo rozsah čísel oddělených pomlčkou (-).

Tabulátory a zpětné mezery jsou považovány za postavu. Je nutné zadat seznam čísel znaků, jinak u této volby způsobí chybu.

Syntax:

cut -c [(k)-(n)/(k),(n)/(n)] filename>

Tady, k označuje výchozí pozici postavy a n označuje koncovou pozici znaku v každém řádku, pokud k a n jsou odděleny - jinak jsou to pouze pozice znaku v každém řádku ze souboru brané jako vstup.

Extrahujte konkrétní znaky:

cut -c 2,5,7 state.txt>
Extrahujte konkrétní znaky

Extrahujte konkrétní znaky

Výše uvedený příkaz cut vytiskne druhý, pátý a sedmý znak z každého řádku souboru.

Extrahujte prvních sedm znaků:

cut -c 1-7 state.txt>
Extrahujte prvních sedm znaků

Extrahujte prvních sedm znaků

Výše uvedený příkaz cut vytiskne prvních sedm znaků každého řádku ze souboru. Vyjmout používá speciální formulář pro výběr znaků od začátku do konce řádku:

Speciální formulář: Výběr znaků od začátku do konce řádku

cut -c 1- state.txt>
výběr znaků od začátku do konce řádku

výběr znaků od začátku do konce řádku pomocí volby -c

Výše uvedený příkaz tiskne od prvního znaku do konce. Zde je v příkazu specifikována pouze počáteční pozice a koncová pozice je vynechána.

cut -c -5 state.txt>
výběr znaků od začátku do konce řádku pomocí volby -c

výběr znaků od začátku do konce řádku pomocí volby -c

Výše uvedený příkaz vytiskne počáteční pozici na pátý znak. Zde se vynechá výchozí pozice a zadá se koncová pozice.

Řez polem (-f>) Pomocí příkazu cut

-f (pole): -c Tato možnost je užitečná pro linky pevné délky. Většina unixových souborů nemá řádky pevné délky. Chcete-li extrahovat užitečné informace, musíte je stříhat podle polí, nikoli podle sloupců. Seznam zadaných čísel polí musí být oddělen čárkou. Rozsahy nejsou popsány volbou -f . střih používá tab jako výchozí oddělovač polí, ale může také pracovat s jinými oddělovači pomocí -d volba.

Poznámka: Mezera není v UNIXu považována za oddělovač.

Syntax:

cut -d 'delimiter' -f (field number) file.txt>

Extrahujte první pole:

Jako v souboru state.txt pole jsou oddělena mezerou, pokud není použita volba -d, vytiskne celý řádek:

cut -f 1 state.txt>
Extrahujte první pole pomocí volby -f

Extrahujte první pole pomocí volby -f

Pokud ` -d' Pokud se použije možnost, považuje se mezera za oddělovač pole nebo oddělovač:

cut -d ' ' -f 1 state.txt>
prostor jako oddělovač nebo oddělovač polí

prostor jako oddělovač nebo oddělovač polí

Extrahujte pole 1 až 4:

Příkaz vytiskne pole od prvního do čtvrtého každého řádku ze souboru.

cut -d ' ' -f 1-4 state.txt>

Příkaz vytiskne pole od prvního do čtvrtého

Příkaz vytiskne pole od prvního do čtvrtého

Výstup doplňku (--complement>) Pomocí příkazu cut

-doplněk: Jak název napovídá, doplňuje výstup. Tuto možnost lze použít v kombinaci s jinými možnostmi buď s -F nebo s -C .

cut --complement -d ' ' -f 1 state.txt>
--doplněk

-doplněk

cut --complement -c 5 state.txt>

--doplněk

-doplněk

Oddělovač výstupu (--output-delimiter>) Pomocí příkazu cut

-oddělovač výstupu: Ve výchozím nastavení je výstupní oddělovač stejný jako vstupní oddělovač, který zadáváme v řezu -d volba. Chcete-li změnit oddělovač výstupu, použijte volbu –output-delimiter=oddělovač .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Zde příkaz cut změní oddělovač (%) ve standardním výstupu mezi poli, který je zadán pomocí volby -f .

Verze zobrazení (--version>) Pomocí příkazu cut

-verze: Tato volba se používá k zobrazení verze cut, která aktuálně běží na vašem systému.

cut --version>

zobrazit verzi příkazu řezu

zobrazit verzi příkazu řez

Jak používat ocas s trubkami(|) v příkazu cut

Příkaz cut lze spojit s mnoha dalšími příkazy unixu. V následujícím příkladu výstup kočka příkaz je zadán jako vstup do střih příkaz s -F možnost seřadit názvy stavů pocházející ze souboru state.txt v opačném pořadí.

cat state.txt | cut -d ' ' -f 1 | sort -r>
pomocí tail with pipe (|) v příkazu cut

pomocí tail with pipe (|) v příkazu cut

Může být také spojen s jedním nebo více filtry pro dodatečné zpracování. Stejně jako v následujícím příkladu používáme příkaz cat, head a cut a jehož výstup je uložen do souboru se jménem list.txt pomocí direktivy(>).

cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

přesměrování výstupu do jiného souboru

průmysl a továrna

přesměrování výstupu do jiného souboru

Často kladené otázky o příkazu cut v Linuxu – FAQ

Jak mohu použít cut> příkaz k extrahování konkrétních sloupců ze souboru?

Příklad: Chcete-li extrahovat první a třetí sloupec ze souboru CSV s názvem ` data.csv`> .

cut -d',' -f1,3 data.csv>

Mohu použít cut> extrahovat řadu znaků z každého řádku?

Ano můžeš. Chcete-li extrahovat znaky 5 až 10 z každého řádku pojmenovaného souborutext.txt>.

cut -c5-10 text.txt>

Jak mohu změnit oddělovač používaný souborem cut> příkaz?

Použijte ` -d`> možnost následovaná znakem oddělovače. Chcete-li například použít dvojtečku (:>) jako oddělovač.

cut -d':' -f1,3 data.txt>

Je možné použít cut> extrahovat pole na základě pozice postavy?

Ano, pozice znaků můžete určit pomocí ` -c`> volba. Chcete-li například extrahovat znaky 1 až 5 a 10 až 15 z každého řádku.

cut -c1-5,10-15 data.txt>

Jak mohu použít cut> extrahovat pole na základě konkrétního oddělovače a uložit je do nového souboru?

Chcete-li extrahovat pole oddělená čárkami a uložit je do nového souboru s názvem ` output.tx> t`>

cut -d',' -f1,3 data.csv>output.txt>

Závěr

V tomto článku jsme diskutovali o ` cut`> příkaz v Linuxu, což je všestranný nástroj pro extrahování konkrétních sekcí ze souborů na základě pozice bajtu, znaku nebo pole. Rozřezává řádky textu a vydává extrahovaná data. Selhání zadání volby pomocícut>příkaz způsobí chybu. Lze zpracovat více souborů, ale výstup nezahrnuje názvy souborů. Možnosti jako ` -b`> , ` -c`> a ` -f`> umožňují extrakci podle bajtu, znaku a pole. The--complement>volba invertuje výběr, tiskne to, co není vybráno, a--output-delimiter>změní oddělovač výstupu. Příkaz také obsahuje možnosti pro zobrazení verze a lze jej použít v kombinaci s jinými příkazy prostřednictvím potrubí pro další zpracování.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L