logo

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 zacut>ukaz je:

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

Kje

`OPTION`> določa želeno vedenje



` FILE> `>predstavlja vhodno datoteko.

Opomba : ČeFILE>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 vLIST>(npr.-b 1-3,7>).

-c, –znaki=SEZNAM

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

-d, –delimiter=DELIM

UporabeDELIM>kot znak za ločilo polja namesto tabulatorja.

-f, –polja=LIS

Izbere samo polja, navedena vLIST>, 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

java je prazna

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 imenomtext.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 zcut>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