ukaz cut v Linuxu s primeri

ukaz cut v Linuxu s primeri

Ukaz cut v linuxu je ukaz za izrezovanje odsekov iz vsake vrstice datotek in zapis rezultata v standardni izhod. Uporablja se lahko za rezanje delov vrstice po položaju bajta, znaku in polju. Ukaz cut razreže vrstico in izvleče besedilo. Opcijo je treba določiti z ukazom, sicer se pojavi napaka. Če je navedenih več kot eno ime datoteke, pred podatki iz vsake datoteke ni njeno ime datoteke.

Kazalo

Sintaksa ukaza cut

Osnovna sintaksa za cut> ukaz je:

cut OPTION... [FILE]... 

Kje

`OPTION`> določa želeno vedenje

` FILE> `> predstavlja vhodno datoteko.

Opomba : Če FILE> ni določeno, ` cut`> bere iz standardnega vhoda (stdin).

Možnosti, ki so na voljo v ukazu cut

Tukaj je seznam najpogosteje uporabljenih možnosti z ` cut`> ukaz:

Možnost

Opis

-b, –bytes=SEZNAM

Izbere samo bajte, določene v LIST> (npr. -b 1-3,7> ).

-c, –znaki=SEZNAM

Izbere samo znake, določene v LIST> (npr. -c 1-3,7> ).

-d, –delimiter=DELIM

Uporabe DELIM> kot znak za ločilo polja namesto tabulatorja.

-f, –polja=LIS

Izbere samo polja, navedena v LIST> , ločeni z ločilnim znakom (privzeto je tabulator).

-n

Ne delite večbajtnih znakov (brez učinka, razen če -b> oz -c> je določeno).

– dopolnjujejo

Obrni izbor polj/znakov. Natisnite polja/znake, ki niso izbrani.

Praktični primeri ukaza cut

Vzemimo dve datoteki z imenom stanje.txt in capital.txt vsebuje 5 imen indijskih držav oziroma prestolnic.

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

Brez določene možnosti se prikaže napaka.

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

Izvleček specifičnih bajtov ( -b> ) Uporaba ukaza cut

-b(bajt): Če želite ekstrahirati določene bajte, morate slediti možnosti -b s seznamom številk bajtov, ločenih z vejico. Obseg bajtov je mogoče določiti tudi z uporabo vezaja (-). Določiti je treba seznam številk bajtov, sicer pride do napake.

Zavihki in vračalke se obravnavajo kot znak 1 bajta.

Seznam brez obsegov :

cut -b 1,2,3 state.txt 
seznam brez obsega

seznam brez obsega

Seznam z obsegi:

cut -b 1-3,5-7 state.txt 
seznam z obsegom

seznam z obsegom

Uporablja posebno obliko za izbiro bajtov od začetka do konca vrstice:

Posebna oblika: izbira bajtov od začetka do konca vrstice

Pri tem 1- nakazuje od 1. bajta do končnega bajta vrstice

cut -b 1- state.txt 
posebna oblika

posebna oblika z možnostjo -b

Pri tem -3 označuje od 1. do 3. bajta vrstice

cut -b -3 state.txt 
posebna oblika

posebna oblika -b možnost

Cut by Character ( -c> ) Uporaba ukaza cut

-c (stolpec): Za rezanje po znaku uporabite možnost -c. To izbere znake, podane možnosti -c. To je lahko seznam številk, ločenih z vejico, ali obseg številk, ločenih z vezajem (-).

Zavihki in vračalke se obravnavajo kot lik. Določiti je treba seznam številk znakov, sicer s to možnostjo pride do napake.

Sintaksa:

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

tukaj, k označuje začetni položaj lika in n označuje končni položaj znaka v vsaki vrstici, če k in n so ločeni z - v nasprotnem primeru so samo položaj znaka v vsaki vrstici iz datoteke, vzete kot vhod.

Izvleček določenih znakov:

cut -c 2,5,7 state.txt 
Izvleček določenih znakov

Izvleček določenih znakov

Zgornji ukaz cut natisne drugi, peti in sedmi znak iz vsake vrstice datoteke.

Izvlecite prvih sedem znakov:

cut -c 1-7 state.txt 
Izvlecite prvih sedem znakov

Izvlecite prvih sedem znakov

Zgornji ukaz cut natisne prvih sedem znakov vsake vrstice iz datoteke. Cut uporablja poseben obrazec za izbiranje znakov od začetka do konca vrstice:

Posebna oblika: izbiranje znakov od začetka do konca vrstice

cut -c 1- state.txt 
izbiranje znakov od začetka do konca vrstice

izbiranje znakov od začetka do konca vrstice z možnostjo -c

Zgornji ukaz se natisne od prvega znaka do konca. Tukaj je v ukazu določen le začetni položaj, končni položaj pa je izpuščen.

cut -c -5 state.txt 
izbiranje znakov od začetka do konca vrstice z možnostjo -c

izbiranje znakov od začetka do konca vrstice z možnostjo -c

Zgornji ukaz natisne začetni položaj do petega znaka. Tukaj je začetni položaj izpuščen, končni položaj pa je določen.

Cut by Field ( -f> ) Uporaba ukaza cut

-f (polje): -c možnost je uporabna za črte s fiksno dolžino. Večina datotek Unix nima vrstic s fiksno dolžino. Če želite pridobiti uporabne informacije, morate rezati po poljih in ne po stolpcih. Seznam navedenih številk polj mora biti ločen z vejico. Območja niso opisana z možnostjo -f . rezati uporablja zavihek kot privzeto ločilo polj, lahko pa deluje tudi z drugimi ločili z uporabo -d možnost.

Opomba: Presledek v UNIX-u ni obravnavan kot ločilo.

Sintaksa:

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

Ekstrakt prvega polja:

Kot v datoteki stanje.txt polja so ločena s presledkom, če možnost -d ni uporabljena, potem natisne celotno vrstico:

cut -f 1 state.txt 
Izvlecite prvo polje z možnostjo -f

Izvlecite prvo polje z možnostjo -f

Če ` -d` je bila uporabljena možnost, potem je presledek obravnaval kot ločilo ali ločilo polj:

cut -d ' ' -f 1 state.txt 
presledek kot ločilo ali ločilo polj

presledek kot ločilo ali ločilo polj

Izvleček polj od 1 do 4:

Ukaz natisne polje od prve do četrte vsake vrstice iz datoteke.

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

Ukaz natisne polje od prvega do četrtega

Ukaz natisne polje od prvega do četrtega

Izhod komplementa ( --complement> ) Uporaba ukaza cut

– dopolnitev: Kot že ime pove, dopolnjuje rezultat. To možnost lahko uporabite v kombinaciji z drugimi možnostmi bodisi z -f ali z -c .

cut --complement -d ' ' -f 1 state.txt 
--dopolniti

– dopolnjujejo

cut --complement -c 5 state.txt 

--dopolniti

– dopolnjujejo

Izhodni ločilnik ( --output-delimiter> ) Uporaba ukaza cut

– izhodni ločilnik: Privzeto je izhodno ločilo enako kot vhodno ločilo, ki ga določimo v rezu -d možnost. Za spremembo izhodnega ločila uporabite možnost –output-delimiter=ločilo .

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

2024-02-16_13-18

Tu ukaz cut spremeni ločilo (%) v standardnem izhodu med polji, ki je podano z možnostjo -f.

Prikazna različica ( --version> ) Uporaba ukaza cut

– različica: Ta možnost se uporablja za prikaz različice cut, ki se trenutno izvaja v vašem sistemu.

cut --version 

prikaz različice ukaza cut

prikaz različice ukaza cut

Kako uporabiti rep s cevmi (|) v ukazu cut

Ukaz cut je mogoče povezati s številnimi drugimi ukazi unixa. V naslednjem primeru izhod za mačka ukaz je podan kot vhod v rezati ukaz z -f možnost razvrščanja imen držav, ki prihajajo iz datoteke state.txt, v obratnem vrstnem redu.

cat state.txt | cut -d ' ' -f 1 | sort -r 
uporaba repa s cevjo (|) v ukazu za rezanje

uporaba repa s cevjo (|) v ukazu za rezanje

Prav tako je lahko cevovoden z enim ali več filtri za dodatno obdelavo. Tako kot v naslednjem primeru uporabljamo ukaz cat, head in cut, katerega rezultat je shranjen v ime datoteke list.txt z uporabo direktive (>).

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

preusmeritev izhoda v drugo datoteko

preusmeritev izhoda v drugo datoteko

Pogosto zastavljena vprašanja o ukazu cut v Linuxu – pogosta vprašanja

Kako naj uporabim cut> ukaz za ekstrahiranje določenih stolpcev iz datoteke?

Primer: Če želite ekstrahirati prvi in ​​tretji stolpec iz datoteke CSV z imenom ` data.csv`> .

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

Ali lahko uporabim cut> izvleči vrsto znakov iz vsake vrstice?

Ja lahko. Za ekstrahiranje znakov od 5 do 10 iz vsake vrstice datoteke z imenom text.txt> .

cut -c5-10 text.txt 

Kako lahko spremenim ločilo, ki ga uporablja cut> ukaz?

Uporabite ` -d`> možnost, ki ji sledi ločilni znak. Na primer, če želite uporabiti dvopičje ( :> ) kot ločilo.

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

Ali je mogoče uporabiti cut> ekstrahirati polja na podlagi položaja znakov?

Da, položaje znakov lahko določite z ` -c`> možnost. Na primer, da iz vsake vrstice izvlečete znake od 1 do 5 in od 10 do 15.

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

Kako uporabljam cut> ekstrahirati polja na podlagi določenega ločila in jih shraniti v novo datoteko?

Če želite ekstrahirati polja, ločena z vejicami, in jih shraniti v novo datoteko z imenom ` output.tx> t`>

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

Zaključek

V tem članku smo razpravljali o ` cut`> ukaz v Linuxu, ki je vsestransko orodje za ekstrahiranje določenih odsekov iz datotek na podlagi položaja bajta, znaka ali polja. Razreže vrstice besedila in izpiše ekstrahirane podatke. Neuspešna določitev možnosti z cut> ukaz povzroči napako. Obdeluje se lahko več datotek, vendar izhod ne vključuje imen datotek. Možnosti, kot je ` -b`> , ` -c`> , in ` -f`> omogočajo ekstrakcijo po bajtu, znaku oziroma polju. The --complement> možnost obrne izbor, natisne tisto, kar ni izbrano, in --output-delimiter> spremeni izhodno ločilo. Ukaz vključuje tudi možnosti za prikaz različice in se lahko uporablja v kombinaciji z drugimi ukazi prek cevi za dodatno obdelavo.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L