Det finns många verktyg tillgängliga i Linux- och Unix-system som gör att du kan bearbeta och filtrera textfiler. cut
är ett kommandoradsverktyg som låter dig klippa delar av rader från angivna filer eller pipedata och skriva ut resultatet till standardutdata. Den kan användas för att klippa delar av en rad efter avgränsare, byteposition och tecken.
I den här artikeln visar vi dig hur du använder cut
kommando genom praktiska exempel och detaljerade förklaringar av de vanligaste alternativen.
Så här använder du klippkommandot #
Syntaxen för cut
kommandot är som följer:
Alternativen som talar om för cut
om de ska använda en avgränsare, byteposition eller karaktär när du skär ut valda delar är raderna följande:
Du kan använda en och endast ett av alternativen som listas ovan.
Andra alternativ är :
-
-d
(--delimiter
) – Ange en avgränsare som ska användas istället för standard ” TAB ”avgränsare. -
--complement
– Komplettera valet. När du använder det här alternativetcut
visar alla byte, tecken, eller fält utom se vald. -
-s
(--only-delimited
) – Som standardcut
skriver ut rader som inte innehåller något avgränsningstecken. När det här alternativet används skrivercut
inte ut rader som inte innehåller avgränsare. -
--output-delimiter
– Standardbeteendet avcut
är att använda ingångsavgränsaren som utgångsavgränsare. Med det här alternativet kan du ange en annan avgränsningssträng för utdata.
Kommandot cut
kan acceptera noll eller fler inmatningsfilnamn. Om inget FILE
anges, eller när FILE
är -
, cut
läses från standardingången.
Argumentet LIST
skickas till -f
, -b
och -c
alternativen kan vara ett heltal, flera heltal separerade med kommatecken, ett intervall av heltal eller flera heltalsområden åtskilda av kommatecken . Varje intervall kan vara något av följande:
-
N
Nionde fältet, byte eller tecken, med början från 1. -
N-
från Nth-fältet, byte eller tecken till slutet av raden. -
N-M
från Nth till Mth-fältet, byte eller tecken. -
-M
från första till Mth-fältet, byte eller tecken.
Så här skär du av fält #
För att ange fälten som ska klippas, anropa kommandot med alternativet -f
. När det inte anges är standardavgränsaren ”TAB”.
I exemplen nedan använder vi följande fil. Fälten är åtskilda av flikar.
Till exempel, för att visa det 1: a och 3: e fältet du skulle använda:
Eller om du vill visa från det första till det fjärde fältet:
Så här skär du ut baserat på en avgränsare #
För att klippa ut baserat på en avgränsare, anropa kommandot med -d
, följt av avgränsaren som du vill använda.
Om du till exempel vill visa första och tredje fälten med ”:” som avgränsare skriver du:
Du kan använda valfritt tecken som avgränsare. I följande exempel använder vi mellanslagstecken som avgränsare och skriver ut det andra fältet:
Så här kompletterar du valet #
För att komplettera listan med markeringsfält använder du alternativet --complement
. Detta skriver bara ut de fält som inte är markerade med alternativet -f
.
Följande kommando skriver ut alla fält utom det 1: a och 3: e:
Hur man anger en utmatningsavgränsare #
För att specificera utmatningsavgränsaren använder du --output-delimiter
alternativ. Om du till exempel vill ställa in utmatningsavgränsaren till _
skulle du använda:
Hur man klipper efter byte och tecken #
Innan vi går vidare, gör vi en skillnad mellan byte och tecken.
En byte är 8 bitar och kan representera 256 olika värden. När ASCII-standarden upprättades tog den hänsyn till alla bokstäver, siffror och symboler som behövs för att arbeta med engelska. ASCII-teckentabellen har 128 tecken och varje tecken representeras av en byte.När datorer började bli globalt tillgängliga började teknikföretag introducera nya teckenkodningar för olika språk. För språk som har mer än 256 tecken var en enkel mappning 1 till 1 inte möjlig. Detta leder till olika problem som att dela dokument eller surfa på webbplatser och en ny Unicode-standard som kan hantera de flesta av världens skrivsystem behövdes. UTF-8 skapades för att lösa dessa problem. I UTF-8 representeras inte alla tecken med 1 byte. Tecken kan representeras med 1 byte till 4 byte.
Alternativet -b
(--bytes
) säger kommandot att klippa sektioner från varje rad som anges av givna bytepositioner.
I följande exempel använder vi tecknet ü
som tar 2 byte.
Välj 5: e byte:
Välj 5, 9 och 13 byte:
Välj intervallet från 1 till 5 byte:
När artikeln skrivs har versionen av cut
buntad i GNU-kärnan inte ett alternativ att klippa ut efter tecken. När du använder alternativet -c
fungerar som när du använder alternativet -b
.
Klipp exempel #
Kommandot cut
används vanligtvis i kombination med andra kommandon via piping. Här är några exempel:
Få en lista över alla användare #
Utdata från getent passwd
-kommandot skickas till cut
, som skriver ut det första fältet med :
som avgränsare.
Utdata visar en lista över alla systemanvändare.
Visa de 10 mest använda kommandona #
I följande exempel används cut
för att ta bort de första 8 bytes från varje rad i kommandoutgången history
.
Slutsats #
cut
-kommandot används för att visa valda fält från varje rad med givna filer eller standardinmatningen.
Även om det är mycket användbart, cut
har vissa begränsningar. Det stöder inte att ange mer än ett tecken som avgränsare och det stöder inte flera avgränsare.