logo

cut-kommando i Linux med eksempler

Cut-kommandoen i linux er en kommando for å kutte ut seksjonene fra hver linje med filer og skrive resultatet til standardutdata. Den kan brukes til å kutte deler av en linje etter byteposisjon, tegn og felt. Kutt-kommandoen skjærer en linje og trekker ut teksten. Det er nødvendig å spesifisere et alternativ med en kommando ellers gir det en feil. Hvis mer enn ett filnavn er oppgitt, blir ikke data fra hver fil innledet med filnavnet.

Innholdsfortegnelse



Syntaks for cut-kommando

Den grunnleggende syntaksen tilcut>kommandoen er:

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

Hvor

`OPTION`> spesifiserer ønsket oppførsel



` FILE> `>representerer inndatafilen.

Merk : HvisFILE>er ikke spesifisert, ` cut`> leser fra standardinngang (stdin).

Alternativer tilgjengelig i cut Command

Her er en liste over de mest brukte alternativene med ` cut`> kommando:



Alternativ

Beskrivelse

-b, –bytes=LISTE

Velger bare bytene spesifisert iLIST>(f.eks.-b 1-3,7>).

-c, –tegn=LISTE

Velger kun tegnene spesifisert iLIST>(f.eks.-c 1-3,7>).

-d, –skilletegn=DELE

BrukerDELIM>som feltskilletegn i stedet for tabulatortegn.

-f, –fields=LIS

Velger bare feltene spesifisert iLIST>, atskilt med skilletegn (standard er tabulator).

-n

Ikke del multi-byte-tegn (ingen effekt med mindre-b>eller-c>er spesifisert).

-komplement

Inverter utvalget av felt/tegn. Skriv ut feltene/tegnene som ikke er valgt.

Praktiske eksempler på cut Command

La oss vurdere to filer med navn state.txt og capital.txt inneholder 5 navn på henholdsvis de indiske delstatene og hovedstedene.

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

Uten noe spesifisert alternativ viser den feil.

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

Trekk ut spesifikke bytes (-b>) Bruke cut Command

-b(byte): For å trekke ut de spesifikke bytene, må du følge -b-alternativet med listen over bytenummer atskilt med komma. Rekkevidde av byte kan også spesifiseres ved hjelp av bindestreken (-). Det er nødvendig å spesifisere liste over byte tall ellers gir det feil.

Tabs og backspaces behandles som et tegn på 1 byte.

Liste uten områder :

cut -b 1,2,3 state.txt>
liste uten rekkevidde

liste uten rekkevidde

Liste med områder:

cut -b 1-3,5-7 state.txt>
liste med rekkevidde

liste med rekkevidde

Den bruker et spesielt skjema for å velge byte fra begynnelsen til slutten av linjen:

Spesialskjema: Velge bytes fra begynnelsen til slutten av linjen

I dette indikerer 1- fra 1. byte til endebyte på en linje

cut -b 1- state.txt>
spesiell form

spesiell form med -b-alternativet

I denne indikerer -3 fra 1. byte til 3. byte på en linje

cut -b -3 state.txt>
spesiell form

spesialform -b alternativ

Kutt etter karakter (-c>) Bruke cut Command

-c (kolonne): For å kutte etter tegn, bruk alternativet -c. Dette velger tegnene gitt til -c-alternativet. Dette kan være en liste med tall separert komma eller et tallområde atskilt med bindestrek (-).

Tabs og backspaces blir behandlet som en karakter. Det er nødvendig å spesifisere liste over tegnnummer ellers gir det feil med dette alternativet.

Syntaks:

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

Her, k angir startposisjonen til karakteren og n angir sluttposisjonen til tegnet i hver linje, if k og n er atskilt med - ellers er de bare posisjonen til tegn i hver linje fra filen tatt som input.

Trekk ut spesifikke tegn:

cut -c 2,5,7 state.txt>
Trekk ut spesifikke tegn

Trekk ut spesifikke tegn

Ovenfor cut-kommando skriver ut andre, femte og syvende tegn fra hver linje i filen.

Trekk ut de første syv tegnene:

cut -c 1-7 state.txt>
Trekk ut de første syv tegnene

Trekk ut de første syv tegnene

Ovenfor cut-kommando skriver ut de første syv tegnene på hver linje fra filen. Cut bruker et spesielt skjema for å velge tegn fra begynnelsen til slutten av linjen:

Spesialskjema: Velge tegn fra begynnelsen til slutten av linjen

cut -c 1- state.txt>
velge tegn fra begynnelsen til slutten av linjen

velge tegn fra begynnelsen til slutten av linjen ved å bruke -c alternativet

Kommandoen ovenfor skrives ut fra første tegn til slutt. Her i kommando angis kun startposisjon og sluttposisjon er utelatt.

cut -c -5 state.txt>
velge tegn fra begynnelsen til slutten av linjen ved å bruke -c alternativet

velge tegn fra begynnelsen til slutten av linjen ved å bruke -c alternativet

Kommandoen ovenfor skriver ut startposisjonen til det femte tegnet. Her er startposisjonen utelatt og sluttposisjonen spesifisert.

Klipp etter felt (-f>) Bruke cut Command

-f (felt): -c alternativet er nyttig for linjer med fast lengde. De fleste unix-filer har ikke linjer med fast lengde. For å trekke ut nyttig informasjon må du kutte etter felt i stedet for kolonner. Listen over feltnummeret må skilles med komma. Områder er ikke beskrevet med -f-alternativet . kutte opp bruker fanen som standard feltskilletegn, men kan også fungere med andre skilletegn ved å bruke -d alternativ.

Merk: Mellomrom anses ikke som skilletegn i UNIX.

Syntaks:

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

Trekk ut første felt:

Som i filen state.txt felt er atskilt med mellomrom hvis alternativet -d ikke brukes, vil det skrive ut hele linjen:

cut -f 1 state.txt>
Trekk ut det første feltet ved å bruke -f-alternativet

Trekk ut det første feltet ved å bruke -f-alternativet

Hvis ` -d` alternativet brukes, så betraktet det mellomrom som en feltseparator eller skilletegn:

cut -d ' ' -f 1 state.txt>
mellomrom som feltskilletegn eller skilletegn

mellomrom som feltskilletegn eller skilletegn

Trekk ut felt 1 til 4:

Kommando skriver ut felt fra første til fjerde av hver linje fra filen.

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

Kommando skriver ut felt fra første til fjerde

Kommando skriver ut felt fra første til fjerde

Komplementutgang (--complement>) Bruke cut Command

-komplement: Som navnet antyder, utfyller den produksjonen. Dette alternativet kan brukes i kombinasjon med andre alternativer enten med -f eller med -c .

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

-komplement

cut --complement -c 5 state.txt>

--komplement

-komplement

Utdataavgrensning (--output-delimiter>) Bruke cut Command

–output-delimiter: Som standard er utgangsskilletegn det samme som inngangsskilletegn som vi spesifiserer i kuttet med -d alternativ. Bruk alternativet for å endre utdataavgrensningen –output-delimiter=skilletegn .

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

2024-02-16_13-18

Her endrer cut-kommando skilletegn(%) i standardutgangen mellom feltene som er spesifisert ved å bruke -f-alternativet.

Vis versjon (--version>) Bruke cut Command

-versjon: Dette alternativet brukes til å vise versjonen av cut som for øyeblikket kjører på systemet ditt.

cut --version>

vise versjon av kutt-kommandoen

vise versjon av kutt-kommandoen

Hvordan bruke hale med piper(|) i cut Command

Cut-kommandoen kan kobles sammen med mange andre kommandoer i unix. I følgende eksempel utgang av katt kommandoen er gitt som input til kutte opp kommando med -f alternativet for å sortere tilstandsnavnene som kommer fra filen state.txt i omvendt rekkefølge.

cat state.txt | cut -d ' ' -f 1 | sort -r>
bruke hale med pipe (|) i cut-kommando

bruke hale med pipe (|) i cut-kommando

Den kan også forsynes med ett eller flere filtre for ytterligere behandling. Som i det følgende eksempelet bruker vi kommandoen cat, head og cut og hvis utdata er lagret i filnavnet list.txt ved hjelp av direktiv(>).

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

omdirigere utdata i en annen fil

min maks

omdirigere utdata i en annen fil

Ofte stilte spørsmål om cut Command i Linux – Vanlige spørsmål

Hvordan bruker jeg cut> kommando for å trekke ut bestemte kolonner fra en fil?

Eksempel: For å trekke ut den første og tredje kolonnen fra en CSV-fil med navnet ` data.csv`> .

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

Kan jeg bruke cut> å trekke ut en rekke tegn fra hver linje?

Ja det kan du. For å trekke ut tegn 5 til 10 fra hver linje i en fil med navntext.txt>.

cut -c5-10 text.txt>

Hvordan kan jeg endre skilletegnet som brukes av cut> kommando?

Bruk ` -d`> alternativet etterfulgt av skilletegnet. For eksempel, for å bruke et kolon (:>) som skilletegn.

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

Er det mulig å bruke cut> å trekke ut felt basert på karakterposisjon?

Ja, du kan spesifisere tegnposisjoner med ` -c`> alternativ. For eksempel for å trekke ut tegnene 1 til 5 og 10 til 15 fra hver linje.

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

Hvordan bruker jeg cut> å trekke ut felt basert på et spesifikt skilletegn og lagre dem i en ny fil?

For å trekke ut felt atskilt med komma og lagre dem i en ny fil kalt ` output.tx> t`>

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

Konklusjon

I denne artikkelen diskuterte vi ` cut`> kommando i Linux som er et allsidig verktøy for å trekke ut spesifikke seksjoner fra filer basert på byteposisjon, tegn eller felt. Den skjærer tekstlinjer og sender ut de utpakkede dataene. Unnlatelse av å spesifisere et alternativ medcut>kommandoen resulterer i en feil. Flere filer kan behandles, men utdataene inkluderer ikke filnavnene. Alternativer som ` -b`> , ` -c`> , og ` -f`> tillate utvinning etter henholdsvis byte, tegn og felt. De--complement>alternativet inverterer utvalget, skriver ut det som ikke er valgt, og--output-delimiter>endrer utgangsskilletegn. Kommandoen inkluderer også alternativer for versjonsvisning og kan brukes i kombinasjon med andre kommandoer gjennom rør for ytterligere behandling.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L