Der er mange værktøjer tilgængelige i Linux- og Unix-systemer, der giver dig mulighed for at behandle og filtrere tekstfiler. cut
er et kommandolinjeprogram, der giver dig mulighed for at klippe dele af linjer fra specificerede filer eller pipedata og udskrive resultatet til standardoutput. Det kan bruges til at klippe dele af en linje efter afgrænser, byteposition og tegn.
I denne artikel viser vi dig, hvordan du bruger cut
kommando gennem praktiske eksempler og detaljerede forklaringer på de mest almindelige indstillinger.
Sådan bruges cut Command #
Syntaksen for cut
kommandoen er som følger:
De muligheder, der fortæller cut
om de skal bruge en afgrænser, byteposition eller et tegn, når du klipper markerede dele ud, er linjerne som følger:
Du kan bruge en og kun en af de ovennævnte indstillinger.
Andre indstillinger er :
-
-d
(--delimiter
) – Angiv en afgrænser, der skal bruges i stedet for standard ” TAB ”-afgrænser. -
--complement
– Suppler valget. Når du bruger denne indstilling, visercut
alle bytes, tegn, eller felter undtagen se valgt. -
-s
(--only-delimited
) – Som standardcut
udskriver de linjer, der ikke indeholder noget skilletegn. Når denne indstilling bruges, udskrivercut
ikke linjer, der ikke indeholder afgrænsere. -
--output-delimiter
– Standardadfærden afcut
er at bruge inputafgrænseren som outputafgrænser. Denne mulighed giver dig mulighed for at specificere en anden outputafgrænsningsstreng.
cut
-kommandoen kan acceptere nul eller flere input FILE-navne. Hvis der ikke er angivet FILE
, eller når FILE
er -
, cut
læser fra standardindgangen.
LIST
argumentet videregivet til -f
, -b
og -c
indstillinger kan være et heltal, flere heltal adskilt af kommaer, et interval af heltal eller flere heltalsområder adskilt af kommaer . Hvert område kan være et af følgende:
-
N
det Nte felt, byte eller tegn, startende fra 1. -
N-
fra Nth-feltet, byte eller tegn til slutningen af linjen. -
N-M
fra Nth til Mth-feltet, byte eller tegn. -
-M
fra første til Mth-felt, byte eller tegn.
Sådan klipper du efter felt #
For at specificere de felter, der skal klippes, skal du påkalde kommandoen med indstillingen -f
. Når det ikke er angivet, er standardafgrænseren “TAB”.
I eksemplerne nedenfor bruger vi følgende fil. Felterne er adskilt af faner.
Hvis du f.eks. vil vise det første og det tredje felt, skal du bruge:
Eller hvis du vil vise fra 1. til 4. felt:
Sådan klipper du ud fra en afgrænser #
For at klippe ud fra en afgrænser skal du påkalde kommandoen med -d
valgmulighed efterfulgt af den afgrænser, du vil bruge.
Hvis du f.eks. vil vise det 1. og 3. felt ved hjælp af “:” som en afgrænser, skal du skrive:
Du kan bruge ethvert enkelt tegn som en afgrænser. I det følgende eksempel bruger vi mellemrumstegnet som en afgrænser og udskriver det andet felt:
Sådan suppleres markeringen #
For at supplere markeringsfeltlisten skal du bruge --complement
. Dette udskriver kun de felter, der ikke er valgt med -f
-indstillingen.
Den følgende kommando udskriver alle felter undtagen 1. og 3.:
Sådan specificeres en outputafgrænser #
For at specificere outputafgrænsningen skal du bruge --output-delimiter
mulighed. Hvis du f.eks. Vil indstille outputafgrænseren til _
, bruger du:
Sådan klipper du efter byte og tegn #
Før vi går videre, lad os skelne mellem byte og tegn.
En byte er 8 bit og kan repræsentere 256 forskellige værdier. Da ASCII-standarden blev oprettet, tog den alle de bogstaver, tal og symboler, der var nødvendige for at arbejde med engelsk, i betragtning. ASCII-tegntabellen har 128 tegn, og hvert tegn er repræsenteret af en byte.Da computere begyndte at blive globalt tilgængelige, begyndte teknologivirksomheder at introducere nye karakterkodninger til forskellige sprog. For sprog, der har mere end 256 tegn, var en simpel 1 til 1-kortlægning ikke mulig. Dette fører til forskellige problemer såsom deling af dokumenter eller browsing af websteder, og der var behov for en ny Unicode-standard, der kan håndtere de fleste af verdens skriftsystemer. UTF-8 blev oprettet for at løse disse problemer. I UTF-8 er ikke alle tegn repræsenteret med 1 byte. Tegn kan repræsenteres med 1 byte til 4 bytes.
Muligheden -b
(--bytes
) fortæller kommandoen at klip sektioner fra hver linje specificeret af givne bytepositioner.
I de følgende eksempler bruger vi tegnet ü
, der tager 2 bytes.
Vælg 5. byte:
Vælg 5., 9. og 13. byte:
Vælg området fra 1. til 5. byte:
På tidspunktet for skrivningen af denne artikel har versionen af cut
, der er samlet i GNU-kernemoduler, ikke en mulighed for at klippe efter tegn. Når du bruger indstillingen -c
, ptræder cut
, som når du bruger indstillingen -b
.
Klipp eksempler #
cut
-kommandoen bruges normalt i kombination med andre kommandoer gennem piping. Her er et par eksempler:
Få en liste over alle brugere #
Outputtet fra getent passwd
kommandoen videregives til cut
, der udskriver det første felt ved hjælp af :
som afgrænser.
Outputtet viser en liste over alle systembrugere.
Se 10 mest anvendte kommandoer #
I det følgende eksempel anvendes cut
for at fjerne de første 8 byte fra hver linje i history
kommandooutputtet.
Konklusion #
cut
kommando bruges til at vise valgte felter fra hver linje med givne filer eller standardinput.
Selvom det er meget nyttigt, cut
har nogle begrænsninger. Det understøtter ikke angivelse af mere end et tegn som en afgrænser, og det understøtter ikke flere afgrænsere.