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
- Možnosti dostupné v príkaze cut
- Praktické príklady strihu Command
- Extrahujte špecifické bajty (-b) pomocou príkazu cut
- Vystrihnúť znakom (-c) Pomocou príkazu vystrihnúť
- Vystrihnúť podľa poľa (-f) Pomocou príkazu vystrihnúť
- Výstup doplnenia (–doplnok) Použitie príkazu cut
- Output Delimiter (–output-delimiter) Použitie príkazu cut
- Verzia zobrazenia (–version) Pomocou príkazu cut
- Ako používať chvost s rúrkami (|) v príkaze cut
- Často kladené otázky o príkaze cut v systéme Linux – často kladené otázky
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é v |
| -c, –znaky=ZOZNAM | Vyberie len znaky špecifikované v |
| -d, –delimiter=DELENIE | Využitie |
| -f, –fields=LIS | Vyberie len polia špecifikované v |
| -n | Nerozdeľujte viacbajtové znaky (bez účinku, pokiaľ |
| – 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 s rozsahmi:
cut -b 1-3,5-7 state.txt>

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 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 -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
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
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 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
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
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í
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
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ť
cut --complement -c 5 state.txt>

– 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='%'>

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
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
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>

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