logo

„Cut“ komandą „Linux“ su pavyzdžiais

„Linux“ komanda iškirpti yra komanda, skirta iškirpti dalis iš kiekvienos failų eilutės ir įrašyti rezultatą į standartinę išvestį. Jis gali būti naudojamas eilutės dalims iškirpti pagal baito padėtį, simbolį ir lauką. Iškirpimo komanda supjausto eilutę ir ištraukia tekstą. Būtina nurodyti parinktį su komanda, kitaip ji pateikia klaidą. Jei pateikiamas daugiau nei vienas failo pavadinimas, prieš kiekvieno failo duomenis failo pavadinimas nenurodomas.

Turinys



Iškirpimo komandos sintaksė

Pagrindinė sintaksėcut>komanda yra:

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

Kur

`OPTION`> nurodo norimą elgesį



` FILE> `>reiškia įvesties failą.

Pastaba : JeiFILE>nenurodyta, ' cut`> nuskaito iš standartinės įvesties (stdin).

Galimos parinktys iškirpimo komandoje

Čia pateikiamas dažniausiai naudojamų parinkčių sąrašas su ` cut`> komanda:



Parinktis

apibūdinimas

-b, -baitai = SĄRAŠAS

Pasirenka tik nurodytus baitusLIST>(pvz.,-b 1-3,7>).

-c, –characters=LIST

Pasirenka tik nurodytus simboliusLIST>(pvz.,-c 1-3,7>).

-d, -ribotuvas = DIVIDE

NaudojaDELIM>kaip lauko skyriklio simbolį, o ne tabuliavimo simbolį.

-f, –laukai=LIS

Pasirenka tik nurodytus laukusLIST>, atskirtas skiriamuoju ženklu (numatytasis yra tabuliavimas).

-n

Neskaidykite kelių baitų simbolių (jokio poveikio, nebent-b>arba-c>yra nurodyta).

– papildyti

Apverskite laukų / simbolių pasirinkimą. Spausdinkite nepasirinktus laukus/simbolius.

Praktiniai iškirpimo komandos pavyzdžiai

Panagrinėkime du failus, turinčius pavadinimą state.txt ir Capital.txt yra atitinkamai 5 Indijos valstijų ir sostinių pavadinimai.

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

Nenurodžius jokios parinkties rodoma klaida.

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

Išskleisti konkrečius baitus (-b>) Naudojant cut komandą

-b (baitas): Norėdami išgauti konkrečius baitus, turite sekti parinktį -b su baitų numerių sąrašu, atskirtu kableliais. Baitų diapazonas taip pat gali būti nurodytas naudojant brūkšnelį (-). Būtina nurodyti baitų numerių sąrašą, kitaip bus pateikta klaida.

Tabukai ir naikinimo klavišai yra traktuojami kaip 1 baito simbolis.

Sąrašas be diapazonų :

cut -b 1,2,3 state.txt>
sąrašas be diapazono

sąrašas be diapazono

Sąrašas su diapazonais:

cut -b 1-3,5-7 state.txt>
sąrašas su diapazonu

sąrašas su diapazonu

Ji naudoja specialią formą baitų pasirinkimui nuo eilutės pradžios iki pabaigos:

Speciali forma: baitų pasirinkimas nuo eilutės pradžios iki pabaigos

Čia 1- nurodo nuo 1-ojo baito iki eilutės pabaigos baito

cut -b 1- state.txt>
speciali forma

speciali forma su -b parinktimi

Čia -3 nurodo nuo 1 baito iki 3 eilutės baito

cut -b -3 state.txt>
speciali forma

specialios formos -b parinktis

Iškirpti pagal personažą (-c>) Naudojant cut komandą

-c (stulpelis): Norėdami iškirpti pagal simbolį, naudokite parinktį -c. Taip pasirenkami simboliai, duoti pasirinkčiai -c. Tai gali būti kableliais atskirtų skaičių sąrašas arba skaičių diapazonas, atskirtas brūkšneliu (-).

Tabukai ir naikinimo klavišai yra traktuojami kaip personažas. Būtina nurodyti simbolių skaičių sąrašą, kitaip ši parinktis duos klaidą.

Sintaksė:

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

Čia k žymi pradinę veikėjo padėtį ir n žymi simbolio pabaigos vietą kiekvienoje eilutėje, jei k ir n yra atskirti – kitu atveju jie yra tik simbolio padėtis kiekvienoje failo eilutėje, paimtame kaip įvestis.

Išskleiskite konkrečius simbolius:

cut -c 2,5,7 state.txt>
Išskleiskite konkrečius simbolius

Išskleiskite konkrečius simbolius

Viršuje esanti komanda iškirpti spausdina antrą, penktą ir septintą simbolį iš kiekvienos failo eilutės.

Ištraukite pirmuosius septynis simbolius:

cut -c 1-7 state.txt>
Ištraukite pirmuosius septynis simbolius

Ištraukite pirmuosius septynis simbolius

Viršuje esanti komanda iškirpti atspausdina pirmuosius septynis kiekvienos failo eilutės simbolius. Iškirpti naudoja specialią formą simboliams pasirinkti nuo eilutės pradžios iki pabaigos:

Speciali forma: simbolių pasirinkimas nuo eilutės pradžios iki pabaigos

cut -c 1- state.txt>
pasirenkant simbolius nuo eilutės pradžios iki pabaigos

simbolių pasirinkimas nuo eilutės pradžios iki pabaigos naudojant parinktį -c

Viršuje pateikta komanda spausdinama nuo pirmojo simbolio iki pabaigos. Čia komandoje nurodoma tik pradinė padėtis, o pabaigos padėtis praleidžiama.

cut -c -5 state.txt>
simbolių pasirinkimas nuo eilutės pradžios iki pabaigos naudojant parinktį -c

simbolių pasirinkimas nuo eilutės pradžios iki pabaigos naudojant parinktį -c

Viršuje esanti komanda spausdina pradinę padėtį iki penkto simbolio. Čia pradinė padėtis praleidžiama ir nurodoma pabaigos padėtis.

Iškirpti pagal lauką (-f>) Naudojant cut komandą

-f (laukas): -c parinktis naudinga fiksuoto ilgio linijoms. Dauguma unix failų neturi fiksuoto ilgio eilučių. Norėdami išgauti naudingą informaciją, turite iškirpti pagal laukus, o ne pagal stulpelius. Nurodytų laukų numerių sąrašas turi būti atskirtas kableliais. Diapazonai nėra aprašyti naudojant -f parinktį . supjaustyti naudoja skirtuką kaip numatytąjį lauko skyriklį, bet taip pat gali veikti su kitu skyrikliu, naudojant -d variantas.

Pastaba: UNIX tarpas nelaikomas skyrikliu.

Sintaksė:

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

Ištraukite pirmąjį lauką:

Kaip faile state.txt laukai atskiriami tarpu, jei parinktis -d nenaudojama, tada spausdinama visa eilutė:

cut -f 1 state.txt>
Išskleiskite pirmąjį lauką naudodami parinktį -f

Išskleiskite pirmąjį lauką naudodami parinktį -f

Jei ` -d' Naudojama parinktis, tada tarpas laikomas lauko skyrikliu arba skyrikliu:

cut -d ' ' -f 1 state.txt>
tarpas kaip lauko skyriklis arba skyriklis

tarpas kaip lauko skyriklis arba skyriklis

Ištraukite 1–4 laukus:

Komanda spausdina lauką nuo pirmosios iki ketvirtosios kiekvienos failo eilutės.

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

Komanda spausdina lauką nuo pirmo iki ketvirto

Komanda spausdina lauką nuo pirmo iki ketvirto

Papildyti išvestis (--complement>) Naudojant cut komandą

– papildyti: Kaip rodo pavadinimas, jis papildo produkciją. Ši parinktis gali būti naudojama kartu su kitomis parinktimis arba su -f arba su -c .

cut --complement -d ' ' -f 1 state.txt>
--papildyti

– papildyti

cut --complement -c 5 state.txt>

--papildyti

– papildyti

Išvesties skyriklis (--output-delimiter>) Naudojant cut komandą

– išvesties skyriklis: Pagal numatytuosius nustatymus išvesties skyriklis yra toks pat kaip įvesties skyriklis, kurį nurodome iškirpdami -d variantas. Norėdami pakeisti išvesties skirtuką, naudokite parinktį –išvestis-ribotuvas=ribotuvas .

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

2024-02-16_13-18

Čia iškirpimo komanda pakeičia skirtuką (%) standartinėje išvestyje tarp laukų, kurie nurodomi naudojant -f parinktį.

Ekrano versija (--version>) Naudojant cut komandą

– versija: Ši parinktis naudojama norint parodyti iškirpimo versiją, kuri šiuo metu veikia jūsų sistemoje.

cut --version>

rodyti komandos iškirpti versiją

rodyti komandos iškirpti versiją

Kaip naudoti uodegą su vamzdeliais (|) pjovimo komandoje

Iškirpimo komanda gali būti perduodama su daugeliu kitų unix komandų. Toliau pateiktame pavyzdyje išvestis katė komanda pateikiama kaip įvestis supjaustyti komandą su -f galimybė rūšiuoti būsenų pavadinimus iš failo status.txt atvirkštine tvarka.

cat state.txt | cut -d ' ' -f 1 | sort -r>
naudojant uodegą su vamzdžiu (|) pjovimo komandoje

naudojant uodegą su vamzdžiu (|) pjovimo komandoje

Jis taip pat gali būti sujungtas su vienu ar daugiau filtrų papildomam apdorojimui. Kaip ir šiame pavyzdyje, mes naudojame cat, head ir cut komandą, kurios išvestis saugoma failo pavadinime list.txt naudojant direktyvą (>).

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

išvesties peradresavimas į kitą failą

centos vs redhat

išvesties peradresavimas į kitą failą

Dažnai užduodami klausimai apie iškirptą komandą Linux sistemoje – DUK

Kaip aš naudoju cut> komanda išgauti konkrečius stulpelius iš failo?

Pavyzdys: Norėdami išskirti pirmąjį ir trečiąjį stulpelius iš CSV failo, pavadinto ` data.csv`> .

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

Ar galiu naudoti cut> ištraukti simbolių diapazoną iš kiekvienos eilutės?

Taip tu gali. Norėdami išgauti simbolius nuo 5 iki 10 iš kiekvienos pavadinto failo eilutėstext.txt>.

cut -c5-10 text.txt>

Kaip pakeisti skirtuką, kurį naudoja cut> komandą?

Naudokite ` -d`> parinktis, po kurios nurodomas skyriklio simbolis. Pavyzdžiui, norėdami naudoti dvitaškį (:>) kaip skirtuką.

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

Ar galima naudoti cut> išgauti laukus pagal simbolio padėtį?

Taip, simbolių vietas galite nurodyti naudodami ` -c`> variantas. Pavyzdžiui, norint ištraukti iš kiekvienos eilutės simbolius nuo 1 iki 5 ir nuo 10 iki 15.

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

Kaip aš naudoju cut> išgauti laukus pagal konkretų skyriklį ir išsaugoti juos naujame faile?

Norėdami išgauti kableliais atskirtus laukus ir išsaugoti juos naujame faile pavadinimu ` output.tx> t`>

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

Išvada

Šiame straipsnyje aptarėme ` cut`> komanda „Linux“, kuri yra universalus įrankis, skirtas išgauti konkrečias dalis iš failų pagal baitų padėtį, simbolį ar lauką. Jis supjausto teksto eilutes ir išveda išgautus duomenis. Nepavyko nurodyti parinkties sucut>komanda sukelia klaidą. Galima apdoroti kelis failus, tačiau išvestyje nėra failų pavadinimų. Tokios parinktys kaip ` -b`> , ` -c`> , ir ` -f`> leisti išgauti atitinkamai pagal baitą, simbolį ir lauką. The--complement>parinktis apverčia pasirinkimą, spausdina tai, kas nepasirinkta, ir--output-delimiter>pakeičia išvesties skirtuką. Komanda taip pat apima versijos rodymo parinktis ir gali būti naudojama kartu su kitomis komandomis per vamzdžius papildomam apdorojimui.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L