CUT kommandoen i Linux er et dejligt hjælpeprogram, der giver dig mulighed for at skære data fra en tekstfil. Kommandoen giver dig mulighed for at klippe data efter karakter, efter felt eller efter kolonne. hvis det bruges korrekt sammen med sed, find eller grep. For eksempel kan du udpakke kolonner fra en kommasepareret fil eller en fil eller et afgrænset fil fra pipe eller kolon ved hjælp af CUT kommando. For eksempel, hvis du kun er interesseret i de første to kolonner, kan du vise dem ved hjælp af denne kommando. I denne guide vil vi se de muligheder for cut-kommandoen. Samt forskellige eksempler og nogle vigtige punkter om cut i UNIX.
For at demonstrere styrken af klippet kommando gennem forskellige eksempler, bruger jeg denne kolonafgrænset tekstfil som input. Denne tekstfil indeholder detaljer om populære smartphones i 2019. Filen indeholder 5 kolonner, dvs. model, firma, pris, kamera og 4G i samme rækkefølge.
Orginal fil

$ cat list-of-smartphones-2019.txt

Model:Company:Price:Camera:4G
IPhone4:Apple:1000$:Yes:Yes
Galaxy:Samsung:900$:Yes:Yes
Optimus:LG:800$:Yes:Yes
Sensation:HTC:400$:Yes:Yes
IPhone10:Apple:1100:Yes:Yes

Hvordan bruger man CUT kommandoen i Linux

Nu vil jeg vise nogle normalt brugte eksempler på cut. Du vil lære hvordan du henter data fra en tekst fil.  Hente koloner af tegn, Hvordan du viser første kolonde af en fil, og hvordan du viser flere kolonder fra en en fil.

Hvordan man henter kolonner af tekst i linux/UNIX fra eksempelvis filer.

For at hente kolonner er nemt. Først finder du hvilken tegn som du skal bruge som adskildes tegn som i den tekst som du skal bruge.  Default er tab når du bruger -f og vælger kolonne med -f1. f står for felt. Så cut -f1 vil vise første kolonne af indholdet af filen. Da vores fil er kolon adskilt skal du bruge -d parameteren som vist i dette eksempel.

$ cut -d: -f1 list-of-smartphones-2011.txt
Model
IPhone4
Galaxy
Optimus
Sensation
IPhone4S
N9

Du kan se af kun første kolonne er vist fra filen.

Klippe med flere adskildelsetegn i linux/UNIX.

I dette eksempel vil vi bruge cut kommandoen er at få de første 1 til 9 tegn fra filen. Du kan se vi viser præcis 9 tegn fra filen på hver linje.

$ cut -c 1-9 list-of-smartphones-2011.txt
Model:Com
IPhone4:A
Galaxy:Sa
Optimus:L
Sensation
IPhone4S:
N9:Nokia:

Klippe ved hjælp af adskildelsetegn.

Husk af tab tegnet er standard tegn afgrænser for klippekommando og “-f” er cut ved adskildelsetegn som beskrevet før. Du kan tilsidesætte afgrænseren ved at angive indstillingen “-d”.

Følgende eksempel på UNIX eller Linux cut kommando.

$ cut -d: -f2 list-of-smartphones-2011.txt
Company
Apple
Samsung
LG
HTC
Apple
Nokia

I dette eksempel er “:” tegnet specieret lige efter “-d” og vil har valg anden kolonne med “-f2”. Du kan vælge hvilken kolonne du vil, du angiver bare hvilken kolonne med 3 efter “-f” og så videre.

For at vise flere kolonner bruger du bare flere “-f” eller giver en liste af dem som vist her.

$ cut -d: -f '1 2' list-of-smartphones-2011.txt
Model:Company
IPhone4:Apple
Galaxy:Samsung
Optimus:LG
Sensation:HTC
IPhone4S:Apple
N9:Nokia

Som du kan se vises både kolonne 1 og kolonne 2 sammen.

Linux cut + sed kommando eksempel med tab som adskildelsetegn.

For at vise dig cut med tab adskildelsetegn, skal vi først ændre “:” tegnet til tab tegnet. Til det kan vi bruge sed kommandoen. Som i dette eksemple vil ændre alle “:” til tab tegn. Og vi kan derefter bruge cut kommandoen som normalt. uden “-d” og her vil vi gerne have første kolonne.

Her den kommando som gør dette.

$ sed 's/:/\t/g' list-of-smartphones-2011.txt | cut -f 1
Model
IPhone4
Galaxy
Optimus
Sensation
IPhone4S
N9

Hvordan klipper man efter første tegn i linjen i linux/UNIX

Her viser vi kun det første tegn fra hver linje fra input filen.

$ cut -c 1 list-of-smartphones-2011.txt
M
I
G
O
S
I
N

Du kan se vi visker kun første tegn fra hver linje.

Vigtigt ting at huske er i Linux/UNIX er:

  1. cut kommandoen bruges til at vise visse dele af en fil’s indhold.
  2. Default adskildelsetegn er tab, og du kan ændre det med “-d” parameteren.
  3. cut kommandoen arbejder på tegn og felter eller kolonner.
  4. Du kan bruge cut på filer og pipe resultatet til andre kommandoer.
  5. I UNIX/Linux er “-d” brugt som adskildelsetegn.
  6. I UNIX/Linux er “-c” bruges til at hente blokke af tekst med.

Her er en oversigt over alle metoder som er beskrevet her.

Det er alt om cut kommandoen. Jeg elsker denne kommando på grund af sin enkelhed, smart brug af klippet kommando er i stand til at analysere logfiler, udtrække de detaljer, du virkelig har brug for i en kolonne, og til at filtrere og sortere det efter dit behov.  Du kan også bruge sort for at sotere resultatet og o.s.v. Der er mange muligheder.

 

By Admin

Author: Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Leave a Reply

Your email address will not be published. Required fields are marked *