10 praktiske Linux Cut Command-eksempler til valg af filkolonner
Linux-kommandosnit bruges til tekstbehandling. Du kan bruge denne kommando til at udtrække en del af teksten fra en fil ved at vælge kolonner.
Denne vejledning giver nogle få praktiske eksempler på klipskommandoer, som du kan bruge i dine daglige kommandolinjeaktiviteter.
For det meste af eksemplet bruger 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.
Vælg kolonne med tegn
Brug kun -c til at udtrække en ønsket kolonne fra en fil. Følgende eksempel viser 2. tegn fra hver linje i en filtest.txt
$ cut -c2 test.txtaps
Som det ses ovenfor, er tegnene a, p, s det andet tegn fra hver linje i test.txt-filen.
Vælg tegnkolonne ved hjælp af rækkevidde
Tegnområdet kan også udvindes fra en fil ved at angive start- og slutposition afgrænset med -. Følgende eksempel udtrækker de første 3 tegn på hver linje fra en fil, der hedder test.txt
$ cut -c1-3 test.txtcatcpls
Vælg tegnkolonne ved hjælp af enten Start- eller slutposition
Enten startposition eller slutposition kan videregives til cut-kommando med option -c.
Følgende angiver kun startpositionen før ‘-‘. Dette eksempel udtrækker fra 3. tegn til slutningen af 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.
Det følgende specificerer kun slutpositionen efter ‘-’. Dette eksempel udtrækker 8 tegn fra begyndelsen af hver linje fra test.txt-filen.
$ cut -c-8 test.txtcat commcp commals comma
Hele linjen bliver udskrevet, når du ikke angiver et tal før eller efter ‘-‘ 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.
Vælg et specifikt felt fra en fil
I stedet for at vælge x-antal af tegn, hvis du kan lide at udtrække et helt felt, kan du kombinere option -f og -d. Option -f angiver, hvilket felt du vil udpakke, og option -d specificerer, hvad der er feltafgrænseren, der bruges i inputfilen.
Følgende eksempel viser kun det første felt på hver linje fra / etc / passwd-fil ved hjælp af markafgrænser: (kolon). I dette tilfælde er det første felt brugernavnet. Filen
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Vælg flere felter fra en fil
Du kan også udtrække mere end et felt fra en fil eller stdout. Nedenstående eksempel viser brugernavn og hjemmekatalog for brugere, der har login-shell som “/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
For at få vist feltområdet skal du angive startfelt og slutfelt som vist nedenfor. I dette eksempel vælger 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
Vælg kun felter, når en linje indeholder skillelinjen
I vores / etc / passwd-eksempel, hvis du passerer en anden afgrænser end: (kolon), vil cut bare vise hele linjen.
I det følgende eksempel viser vi ‘ har specificeret afgrænseren som | (pipe), og kommandoen cut viser blot hele linjen, selv når den ikke finder nogen linje, der har | (pipe) som afgrænser.
$ 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 muligt at filtrere og kun vise de linjer, der indeholder den specificerede afgrænser ved hjælp af -s-indstillingen.
Følgende eksempel viser ikke nogen output, da cut-kommandoen ikke finder ikke nogen linjer, der har | (pipe) som afgrænser i filen / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Vælg alle felter undtagen de angivne felter
For at supplere listen med valgfelter skal du bruge indstilling –komplement.
Følgende eksempel vises alle felter fra / etc / passwd-fil undtagen felt 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Ændring af outputafgrænser til visning
Som standard er outputafgrænseren den samme som inputafgrænser, som vi angiver i cut-d-indstillingen.
Hvis du vil ændre outputafgrænseren, skal du bruge indstillingen –output-afgrænser som vist nedenfor. I dette eksempel er inputafgrænseren: (kolon), men outputafgrænsen er # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Skift outputudskiller til Newline
I dette eksempel vises hvert felt i cut-kommandoutputet på en separat linje. Vi brugte stadig –output-afgrænser, men værdien er $ ‘\ n’, hvilket indikerer, at vi skal tilføje en ny linje som outputafgrænser.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Kombiner Klip med anden Unix-kommandooutput
Power of cut-kommandoen kan realiseres, når du kombinerer den med stdout af en anden Unix-kommando.
Når du mestrer den grundlæggende brug af cut-kommandoen som vi har forklaret ovenfor, kan du klogt bruge cut-kommandoen til at løse mange af dine tekstmanipulationskrav.
Følgende eksempel viser, hvordan du kun kan udtrække nyttige oplysninger fra ps-kommandooutputtet. Vi viste også, hvordan vi har filtreret output fra ps-kommando ved hjælp af grep og sed, før den endelige output blev givet for at skære kommando.Her har vi brugt klippemulighed -d og -f, som vi har forklaret i eksemplerne ovenfor.
Hvis du kunne lide denne artikel, kan du måske også lide ..
|
|