logo

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á syntaxcut>príkaz je:

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

Kde

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



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

Poznámka : AkFILE>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é vLIST>(napr.-b 1-3,7>).

-c, –znaky=ZOZNAM

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

-d, –delimiter=DELENIE

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

-f, –fields=LIS

Vyberie len polia špecifikované vLIST>, 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

diskrétna matematická negácia

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úborutext.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 pomocoucut>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