10 praktiska Linux Cut-kommandoexempel för att välja filkolumner
Linux-kommandoskärning används för textbehandling. Du kan använda det här kommandot för att extrahera en del text från en fil genom att välja kolumner.
Denna handledning ger några praktiska exempel på klippkommando som du kan använda i dina dagliga kommandoradsaktiviteter.
För det mesta av exemplet använder vi följande 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älj teckenkolumn
För att endast extrahera en önskad kolumn från en fil, använd -c-alternativet. Följande exempel visar andra tecknet från varje rad i ett filtest.txt
$ cut -c2 test.txtaps
Som vi ser ovan är tecknen a, p, s det andra tecknet från varje rad i test.txt-filen.
Välj teckenkolumn med intervall
Teckenintervall kan också extraheras från en fil genom att ange start- och slutposition avgränsad med -. I följande exempel extraheras de tre första tecknen på varje rad från en fil som heter test.txt
$ cut -c1-3 test.txtcatcpls
Välj teckenkolumn med antingen start- eller slutposition
Antingen startposition eller slutposition kan skickas för att klippa kommandot med alternativet -c.
Följande anger endast startpositionen före ’-’. Detta exempel extraherar från tredje tecknet till slutet av varje rad från 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.
Nedan anges endast slutpositionen efter ‘-‘. Detta exempel extraherar åtta tecken från början av varje rad från test.txt-filen.
$ cut -c-8 test.txtcat commcp commals comma
Hela raden skrivs ut när du inte anger ett nummer före eller efter ’-’ som visas nedan.
$ 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älj ett specifikt fält från en fil
I stället för att välja x-antalet tecken, om du vill extrahera ett helt fält kan du kombinera alternativ -f och -d. Alternativet -f anger vilket fält du vill extrahera och alternativet -d anger vad som är fältavgränsaren som används i inmatningsfilen.
Följande exempel visar endast första fältet för varje rad från / etc / passwd-fil med hjälp av fältavgränsaren: (kolon). I det här fallet är det första fältet användarnamnet. Filen
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Välj flera fält från en fil
Du kan också extrahera mer än ett fält från en fil eller stdout. Nedanstående exempel visar användarnamn och hemkatalog för användare som har inloggningsskalet som ”/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
För att visa fältområdet anger du startfält och slutfältet som visas nedan. I detta exempel väljer vi fält 1 till 4, 6 och 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älj endast fält när en rad innehåller avgränsaren
I vårt / etc / passwd-exempel, om du skickar en annan avgränsare än: (kolon), kommer skär bara att visa hela raden.
I följande exempel, vi ’ Vi har specificerat avgränsaren som | (pipe) och kommandot cut visar helt enkelt hela raden, även om den inte hittar någon rad som har | (pipe) som avgränsare.
$ 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 är möjligt att bara filtrera och visa de rader som innehåller den angivna avgränsaren med alternativet -s.
Följande exempel visar ingen utdata, eftersom kommandot klipp inte gjorde hittar inga rader som har | (rör) som avgränsare i filen / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Välj alla fält utom de angivna fälten
För att komplettera listan med markeringsfält, använd alternativ –komplement.
Följande exempel visas alla fält från / etc / passwd-filen utom fält 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Ändra utmatningsavgränsare för visning
Som standard är utmatningsavgränsaren densamma som ingångsavgränsare som vi anger i alternativet cut-d.
För att ändra utmatningsavgränsaren, använd alternativet –output-avgränsare som visas nedan. I det här exemplet är ingångsavgränsaren: (kolon), men utmatningsavgränsaren är # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Ändra utmatningsavgränsare till Newline
I det här exemplet visas varje fält i klippkommandoutmatningen på en separat rad. Vi använde fortfarande –output-avgränsare, men värdet är $ ’\ n’ vilket indikerar att vi ska lägga till en ny linje som utgångsavgränsare.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Kombinera Klipp ut med annan Unix-kommandoutgång
Kommandot Power of cut kan realiseras när du kombinerar det med stdout för något annat Unix-kommando.
När du behärskar den grundläggande användningen av klippkommandot som vi har förklarat ovan kan du klokt använda cut-kommandot för att lösa många av dina textmanipulationskrav.
Följande exempel visar hur du endast kan extrahera användbar information från ps-kommandoutput. Vi visade också hur vi har filtrerat utdata från ps-kommandot med grep och sed innan den slutliga utdata gavs för att klippa kommandot.Här har vi använt klippalternativ -d och -f som vi har förklarat i exemplen ovan.
Om du gillade den här artikeln kanske du också gillar ..
|
|