príkaz cut v Linuxe s príkladmi

príkaz cut v Linuxe s príkladmi

Príkaz cut v linuxe je príkaz na vystrihnutie sekcií z každého riadku súborov a zapísanie výsledku na štandardný výstup. Môže sa použiť na rezanie častí riadku podľa pozície bajtu, znaku a poľa. Príkaz cut rozreže riadok a extrahuje text. Je potrebné zadať voľbu pomocou príkazu, inak vypíše chybu. Ak je zadaných viac ako jeden názov súboru, pred údajmi z každého súboru nie je uvedený názov súboru.

Obsah

Syntax príkazu cut

Základná syntax cut> príkaz je:

cut OPTION... [FILE]... 

Kde

`OPTION`> špecifikuje požadované správanie

` FILE> `> predstavuje vstupný súbor.

Poznámka : Ak FILE> nie je špecifikované, ` cut`> číta zo štandardného vstupu (stdin).

Možnosti dostupné v príkaze cut

Tu je zoznam najčastejšie používaných možností s ` cut`> príkaz:

Možnosť

Popis

-b, –bytes=ZOZNAM

Vyberie len bajty špecifikované v LIST> (napr. -b 1-3,7> ).

-c, –znaky=ZOZNAM

Vyberie len znaky špecifikované v LIST> (napr. -c 1-3,7> ).

-d, –delimiter=DELENIE

Využitie DELIM> ako znak oddeľovača poľa namiesto znaku tabulátora.

-f, –fields=LIS

Vyberie len polia špecifikované v LIST> , oddelené znakom oddeľovača (predvolené je tabulátor).

-n

Nerozdeľujte viacbajtové znaky (bez účinku, pokiaľ -b> alebo -c> je špecifikovaný).

– doplniť

Invertovať výber polí/znakov. Vytlačte nevybrané polia/znaky.

Praktické príklady strihu Command

Uvažujme dva súbory s názvom state.txt a capital.txt obsahuje 5 názvov indických štátov a hlavných miest resp.

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

Bez zadania akejkoľvek možnosti sa zobrazí chyba.

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

Extrahovať konkrétne bajty ( -b> ) Pomocou príkazu cut

-b(bajt): Ak chcete extrahovať konkrétne bajty, musíte postupovať podľa voľby -b so zoznamom čísel bajtov oddelených čiarkou. Rozsah bajtov možno zadať aj pomocou spojovníka (-). Je potrebné špecifikovať zoznam čísel bajtov, inak to spôsobí chybu.

Tabulátory a zadné medzery sa zaobchádza ako so znakom 1 bajtu.

Zoznam bez rozsahov :

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

zoznam bez rozsahu

Zoznam s rozsahmi:

cut -b 1-3,5-7 state.txt 
zoznam s rozsahom

zoznam s rozsahom

Používa špeciálny formulár na výber bajtov od začiatku až po koniec riadku:

Špeciálny formulár: Výber bajtov od začiatku do konca riadku

V tomto prípade 1- označuje od 1. bajtu po koncový bajt riadku

cut -b 1- state.txt 
špeciálna forma

špeciálna forma s možnosťou -b

V tomto prípade -3 označuje od 1. do 3. bajtu riadku

cut -b -3 state.txt 
špeciálna forma

špeciálna forma -b možnosť

Vystrihnúť podľa znaku ( -c> ) Pomocou príkazu cut

-c (stĺpec): Na rezanie podľa znaku použite voľbu -c. Týmto sa vyberú znaky dané voľbe -c. Môže to byť zoznam čísel oddelených čiarkou alebo rozsah čísel oddelených pomlčkou (-).

Tabulátory a zadné medzery sa s nimi zaobchádza ako s postavou. Je potrebné špecifikovať zoznam čísel znakov, inak pri tejto možnosti spôsobí chybu.

Syntax:

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

Tu, k označuje východiskovú polohu postavy a n označuje koncovú pozíciu znaku v každom riadku, ak k a n sú oddelené - inak sú to len pozície znaku v každom riadku zo súboru brané ako vstup.

Extrahujte konkrétne znaky:

cut -c 2,5,7 state.txt 
Extrahujte konkrétne znaky

Extrahujte konkrétne znaky

Vyššie uvedený príkaz cut vytlačí druhý, piaty a siedmy znak z každého riadku súboru.

Extrahujte prvých sedem znakov:

cut -c 1-7 state.txt 
Extrahujte prvých sedem znakov

Extrahujte prvých sedem znakov

Vyššie uvedený príkaz cut vytlačí prvých sedem znakov každého riadku zo súboru. Vystrihnúť používa špeciálny formulár na výber znakov od začiatku až po koniec riadku:

Špeciálny formulár: Výber znakov od začiatku do konca riadku

cut -c 1- state.txt 
výber znakov od začiatku do konca riadku

výber znakov od začiatku do konca riadku pomocou voľby -c

Vyššie uvedený príkaz tlačí od prvého znaku po koniec. Tu je v príkaze špecifikovaná iba počiatočná poloha a koncová poloha je vynechaná.

cut -c -5 state.txt 
výber znakov od začiatku do konca riadku pomocou voľby -c

výber znakov od začiatku do konca riadku pomocou voľby -c

Vyššie uvedený príkaz vytlačí počiatočnú pozíciu na piaty znak. Tu sa vynechá počiatočná poloha a zadá sa koncová poloha.

Rezané podľa poľa ( -f> ) Pomocou príkazu cut

-f (pole): -c možnosť je užitočná pre linky s pevnou dĺžkou. Väčšina unixových súborov nemá riadky s pevnou dĺžkou. Ak chcete extrahovať užitočné informácie, musíte ich strihať podľa polí a nie podľa stĺpcov. Zoznam zadaných čísel polí musí byť oddelený čiarkou. Rozsahy nie sú popísané voľbou -f . rezať používa tab ako predvolený oddeľovač polí, ale môže pracovať aj s iným oddeľovačom pomocou -d možnosť.

Poznámka: Medzera sa v systéme UNIX nepovažuje za oddeľovač.

Syntax:

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

Extrahujte prvé pole:

Ako v súbore state.txt polia sú oddelené medzerou, ak sa nepoužije možnosť -d, potom sa vypíše celý riadok:

cut -f 1 state.txt 
Extrahujte prvé pole pomocou voľby -f

Extrahujte prvé pole pomocou voľby -f

Ak ` -d' Ak sa použije možnosť, potom sa za oddeľovač polí alebo oddeľovač považuje medzera:

cut -d ' ' -f 1 state.txt 
priestor ako oddeľovač alebo oddeľovač polí

priestor ako oddeľovač alebo oddeľovač polí

Extrahujte polia 1 až 4:

Príkaz vytlačí pole od prvého do štvrtého z každého riadku zo súboru.

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

Príkaz vytlačí pole od prvého do štvrtého

Príkaz vytlačí pole od prvého do štvrtého

Doplnkový výstup ( --complement> ) Pomocou príkazu cut

- doplniť: Ako už názov napovedá, dopĺňa výstup. Túto možnosť je možné použiť v kombinácii s inými možnosťami buď s -f alebo s -c .

cut --complement -d ' ' -f 1 state.txt 
--doplniť

– doplniť

cut --complement -c 5 state.txt 

--doplniť

– doplniť

Oddeľovač výstupu ( --output-delimiter> ) Pomocou príkazu cut

-oddeľovač výstupu: Štandardne je výstupný oddeľovač rovnaký ako vstupný oddeľovač, ktorý špecifikujeme v reze -d možnosť. Ak chcete zmeniť oddeľovač výstupu, použite možnosť –output-delimiter=oddeľovač .

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

2024-02-16_13-18

Tu príkaz cut zmení oddeľovač (%) v štandardnom výstupe medzi poliami, ktorý je zadaný pomocou voľby -f .

Verzia zobrazenia ( --version> ) Pomocou príkazu cut

- verzia: Táto možnosť sa používa na zobrazenie verzie rezu, ktorá je momentálne spustená vo vašom systéme.

cut --version 

zobraziť verziu príkazu na rezanie

zobraziť verziu príkazu na rezanie

Ako používať chvost s rúrkami (|) v príkaze cut

Príkaz cut môže byť spojený s mnohými ďalšími príkazmi unixu. V nasledujúcom príklade výstup z kat príkaz je zadaný ako vstup do rezať príkaz s -f možnosť zoradiť názvy stavov pochádzajúce zo súboru state.txt v opačnom poradí.

cat state.txt | cut -d ' ' -f 1 | sort -r 
pomocou tail with pipe (|) v príkaze cut

pomocou tail with pipe (|) v príkaze cut

Môže byť tiež prepojený s jedným alebo viacerými filtrami na dodatočné spracovanie. Podobne ako v nasledujúcom príklade používame príkazy cat, head a cut, ktorých výstup je uložený v názve súboru list.txt pomocou direktívy(>).

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

presmerovanie výstupu do iného súboru

presmerovanie výstupu do iného súboru

Často kladené otázky o príkaze cut v systéme Linux – často kladené otázky

Ako môžem použiť cut> príkaz na extrahovanie konkrétnych stĺpcov zo súboru?

Príklad: Ak chcete extrahovať prvý a tretí stĺpec zo súboru CSV s názvom ` data.csv`> .

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

Môžem použiť cut> extrahovať rozsah znakov z každého riadku?

Áno môžeš. Na extrahovanie znakov 5 až 10 z každého riadku pomenovaného súboru text.txt> .

cut -c5-10 text.txt 

Ako môžem zmeniť oddeľovač, ktorý používa cut> príkaz?

Použite ` -d`> možnosť, za ktorou nasleduje znak oddeľovača. Ak chcete napríklad použiť dvojbodku ( :> ) ako oddeľovač.

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

Je možné použiť cut> extrahovať polia na základe polohy postavy?

Áno, pozície znakov môžete určiť pomocou ` -c`> možnosť. Napríklad na extrahovanie znakov 1 až 5 a 10 až 15 z každého riadku.

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

Ako môžem použiť cut> extrahovať polia na základe špecifického oddeľovača a uložiť ich do nového súboru?

Ak chcete extrahovať polia oddelené čiarkami a uložiť ich do nového súboru s názvom ` output.tx> t`>

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

Záver

V tomto článku sme diskutovali o ` cut`> príkaz v systéme Linux, ktorý je všestranným nástrojom na extrahovanie konkrétnych sekcií zo súborov na základe pozície bajtu, znaku alebo poľa. Rozdeľuje riadky textu a vydáva extrahované údaje. Neurčenie možnosti pomocou cut> príkaz spôsobí chybu. Je možné spracovať viacero súborov, ale výstup neobsahuje názvy súborov. Možnosti ako „ -b`> , ` -c`> a „ -f`> umožňujú extrakciu podľa bajtu, znaku a poľa. The --complement> voľba obráti výber, vytlačí to, čo nie je vybraté, a --output-delimiter> zmení oddeľovač výstupu. Príkaz tiež obsahuje voľby pre zobrazenie verzie a možno ho použiť v kombinácii s inými príkazmi cez potrubia na dodatočné spracovanie.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L