Klip kommando i Linux

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, viser cut alle bytes, tegn, eller felter undtagen se valgt.
  • -s (--only-delimited) – Som standard cut udskriver de linjer, der ikke indeholder noget skilletegn. Når denne indstilling bruges, udskriver cut ikke linjer, der ikke indeholder afgrænsere.
  • --output-delimiter – Standardadfærden af cut 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.

test.txt

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *