Det er mange verktøy tilgjengelig i Linux- og Unix-systemer som lar deg behandle og filtrere tekstfiler. cut
er et kommandolinjeprogram som lar deg kutte deler av linjer fra spesifiserte filer eller pipedata og skrive ut resultatet til standard utdata. Den kan brukes til å kutte deler av en linje etter skillelinje, byteposisjon og tegn.
I denne artikkelen vil vi vise deg hvordan du bruker cut
kommando gjennom praktiske eksempler og detaljerte forklaringer på de vanligste alternativene.
Slik bruker du kuttet Kommando #
Syntaksen for cut
kommandoen er som følger:
Alternativene som forteller cut
om de skal bruke en avgrenser, byteposisjon eller tegn når du kutter ut valgte deler, er linjene som følger:
Du kan bruke en, og bare ett av alternativene som er oppført ovenfor.
Andre alternativer er :
-
-d
(--delimiter
) – Angi en avgrenser som skal brukes i stedet for standard » TAB ”skilletegn. -
--complement
– Utfyll valget. Når du bruker dette alternativet, visercut
alle byte, tegn, eller felt unntatt se valgt. -
-s
(--only-delimited
) – Som standardcut
skriver ut linjene som ikke inneholder skilletegn. Når dette alternativet brukes, skrivercut
ikke ut linjer som ikke inneholder avgrensere. -
--output-delimiter
– Standard oppførsel avcut
er å bruke inngangsavgrenseren som utgangsavgrenser. Dette alternativet lar deg spesifisere en annen avgrensningsstreng for utdata.
cut
-kommandoen kan akseptere null eller flere inndatafilnavn. Hvis ingen FILE
er spesifisert, eller når FILE
er -
, cut
vil lese fra standardinngangen.
LIST
argumentet sendt til -f
, -b
, og -c
-alternativene kan være et heltall, flere heltall atskilt med komma, et utvalg av heltall eller flere heltalsområder adskilt med komma . Hvert område kan være ett av følgende:
-
N
Nte felt, byte eller tegn, fra 1. -
N-
fra Nth-feltet, byte eller tegn, til slutten av linjen. -
N-M
fra Nth til Mth-feltet, byte eller tegn. -
-M
fra første til Mth-feltet, byte eller tegn.
Hvordan klippe ut etter felt #
For å spesifisere feltene som skal kuttes, påkaller du kommandoen med alternativet -f
. Når det ikke er spesifisert, er standard skilletegn «TAB».
I eksemplene nedenfor vil vi bruke følgende fil. Feltene er atskilt med faner.
For eksempel, for å vise det første og det tredje feltet du vil bruke:
Eller hvis du vil vise fra 1. til 4. felt:
Hvordan klippe ut basert på en skillelinje #
For å kutte basert på en skillelinje, påkaller du kommandoen med -d
-alternativ, etterfulgt av skilletegnet du vil bruke.
Hvis du for eksempel vil vise det første og tredje feltet ved å bruke «:» som en skilletegn, skriver du:
Du kan bruke hvilket som helst enkelt tegn som skilletegn. I det følgende eksemplet bruker vi mellomromstegnet som skilletegn og skriver ut det andre feltet:
Slik kompletterer du valget #
For å utfylle valgfeltlisten, bruk alternativet --complement
. Dette vil bare skrive ut de feltene som ikke er valgt med -f
alternativet.
Følgende kommando vil skrive ut alle felt unntatt det første og tredje:
Slik spesifiserer du en utskriftsavgrenser #
For å spesifisere utgangsavgrenseren bruker du --output-delimiter
alternativ. Hvis du for eksempel vil sette utgangsavgrenseren til _
, bruker du:
Slik klipper du av byte og tegn #
Før vi går videre, la oss skille mellom byte og tegn.
En byte er 8 bits og kan representere 256 forskjellige verdier. Da ASCII-standarden ble etablert, tok den hensyn til alle bokstavene, tallene og symbolene som er nødvendige for å jobbe med engelsk. ASCII-tegnetabellen har 128 tegn, og hvert tegn er representert med en byte.Da datamaskiner begynte å bli globalt tilgjengelige, begynte teknologibedrifter å introdusere nye tegnkodinger for forskjellige språk. For språk som har mer enn 256 tegn, var det ikke mulig å kartlegge 1 til 1. Dette fører til forskjellige problemer som å dele dokumenter eller surfe på nettsteder, og det var behov for en ny Unicode-standard som kan håndtere de fleste av verdens skrivesystemer. UTF-8 ble opprettet for å løse disse problemene. I UTF-8 er ikke alle tegn representert med 1 byte. Tegn kan vises med 1 byte til 4 byte.
Alternativet -b
(--bytes
) forteller kommandoen kutt seksjoner fra hver linje spesifisert av gitt byteposisjon.
I de følgende eksemplene bruker vi tegnet ü
som tar 2 byte.
Velg 5. byte:
Velg 5., 9. og 13. byte:
Velg området fra 1. til 5. byte:
Når denne artikkelen skrives, har ikke versjonen av cut
som er samlet i GNU-kjernemutler et alternativ å klippe etter tegn. Når du bruker alternativet -c
, oppfører cut
det samme som når du bruker alternativet -b
.
Klipp eksempler #
cut
-kommandoen brukes vanligvis i kombinasjon med andre kommandoer gjennom piping. Her er noen eksempler:
Få en liste over alle brukere #
Utgangen fra getent passwd
-kommandoen sendes til cut
, som skriver ut det første feltet med :
som skilletegn.
Utgangen viser en liste over alle systembrukere.
Vis 10 mest brukte kommandoer #
I det følgende eksemplet brukes cut
for å fjerne de første 8 byte fra hver linje i history
kommandoutgang.
Konklusjon #
cut
-kommandoen brukes til å vise valgte felt fra hver linje med gitte filer eller standardinndata.
Selv om det er veldig nyttig, cut
har noen begrensninger. Det støtter ikke å angi mer enn ett tegn som skilletegn, og det støtter ikke flere skillelinjer.