10 praktiske Linux Cut Command-eksempler for å velge filkolonner
Linux-kommandokutt brukes til tekstbehandling. Du kan bruke denne kommandoen til å trekke ut en del tekst fra en fil ved å velge kolonner.
Denne opplæringen gir noen få praktiske eksempler på klippekommandoer som du kan bruke i dine daglige kommandolinjeaktiviteter.
For det meste av eksemplet bruker vi følgende testfil.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Velg tegnkolonne
For å trekke ut en ønsket kolonne fra en fil, bruk -c-alternativet. Følgende eksempel viser andre tegn fra hver linje i en filtest.txt
$ cut -c2 test.txtaps
Som vist ovenfor er tegnene a, p, s det andre tegnet fra hver linje i test.txt-filen.
Velg tegnkolonne ved hjelp av Range
Tegnområdet kan også trekkes ut fra en fil ved å angi start- og sluttposisjon avgrenset med -. Følgende eksempel trekker ut de første tre tegnene på hver linje fra en fil som heter test.txt
$ cut -c1-3 test.txtcatcpls
Velg tegnkolonne ved å bruke enten Start- eller sluttposisjon
Enten startposisjonen eller sluttposisjonen kan overføres til klippekommandoen med -c-alternativet.
Følgende spesifiserer bare startposisjonen før ‘-‘. Dette eksemplet trekker ut fra 3. tegn til slutten av hver linje fra test.txt-filen.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Følgende spesifiserer bare sluttposisjonen etter ‘-’. Dette eksemplet trekker ut 8 tegn fra begynnelsen av hver linje fra test.txt-filen.
$ cut -c-8 test.txtcat commcp commals comma
Hele linjen blir skrevet ut når du ikke angir et tall før eller etter ‘-‘ som vist nedenfor.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Velg et bestemt felt fra en fil
I stedet for å velge x antall tegn, hvis du vil trekke ut et helt felt, kan du kombinere alternativet -f og -d. Alternativet -f spesifiserer hvilket felt du vil trekke ut, og alternativet -d spesifiserer hva som er feltavgrenseren som brukes i inndatafilen.
Følgende eksempel viser bare første felt av hver linje fra / etc / passwd-fil ved hjelp av feltavgrenseren: (kolon). I dette tilfellet er det første feltet brukernavnet. Filen
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Velg flere felt fra en fil
Du kan også trekke ut mer enn ett felt fra en fil eller stdout. Eksemplet nedenfor viser brukernavn og hjemmekatalog for brukere som har påloggingsskallet som «/ bin / bash».
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
For å vise feltområdet, spesifiser startfelt og sluttfelt som vist nedenfor. I dette eksemplet velger vi felt 1 til 4, 6 og 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Velg bare felt når en linje inneholder skilletegn
I vårt / etc / passwd-eksempel, hvis du passerer en annen skillelinje enn: (kolon), vil cut bare vise hele linjen.
I det følgende eksemplet, vi ‘ har spesifisert skilletegnet som | (pipe), og cut-kommandoen viser ganske enkelt hele linjen, selv når den ikke finner noen linje som har | (pipe) som skilletegn.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Men det er mulig å filtrere og vise bare linjene som inneholder den angitte avgrenseren ved hjelp av alternativet -s.
Følgende eksempel viser ingen utdata, ettersom klippekommandoen ikke gjorde finner ikke noen linjer som har | (pipe) som skilletegn i filen / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Velg alle felt unntatt de angitte feltene
For å utfylle valgfeltlisten, bruk alternativ –komplement.
Følgende eksempel viser alle feltene fra / etc / passwd-filen unntatt felt 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Endre utgangsavgrensning for visning
Som standard er utgangsavgrenseren den samme som inngangsavgrenser som vi spesifiserer i alternativet kutt-d.
For å endre utgangsavgrenseren, bruk alternativet –utgang-skilletegn som vist nedenfor. I dette eksemplet er inngangsavgrenseren: (kolon), men utgangsavgrenseren er # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Endre utdataavgrenseren til Newline
I dette eksemplet vises hvert eneste felt i kuttkommandoutgangen på en egen linje. Vi brukte fremdeles –output-skilletegn, men verdien er $ ‘\ n’ som indikerer at vi skal legge til en ny linje som utgangsavgrenseren.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Kombinere Cut with Other Unix Command Output
Power of cut-kommandoen kan realiseres når du kombinerer den med stdout av en annen Unix-kommando.
Når du mestrer den grunnleggende bruken av cut-kommandoen som vi har forklart ovenfor, kan du klokt bruke cut-kommandoen for å løse mange av kravene til tekstmanipulering.
Følgende eksempel indikerer hvordan du bare kan hente ut nyttig informasjon fra ps-kommandoutgangen. Vi viste også hvordan vi har filtrert utdataene fra ps-kommandoen ved hjelp av grep og sed før den endelige utgangen ble gitt for å kutte kommandoen.Her har vi brukt kuttalternativ -d og -f som vi har forklart i eksemplene ovenfor.
Hvis du likte denne artikkelen, vil du kanskje også like ..
|
|