logo

cut-kommando i Linux med exempel

Cut-kommandot i linux är ett kommando för att klippa ut avsnitten från varje rad med filer och skriva resultatet till standardutdata. Den kan användas för att klippa delar av en rad efter byteposition, tecken och fält. Kommandot klipp skär en rad och extraherar texten. Det är nödvändigt att ange ett alternativ med ett kommando, annars ger det ett fel. Om mer än ett filnamn tillhandahålls föregås inte data från varje fil av dess filnamn.

Innehållsförteckning



Syntax för cut-kommando

Den grundläggande syntaxen förcut>kommandot är:

cut OPTION... [FILE]...>

Var

`OPTION`> anger önskat beteende



` FILE> `>representerar indatafilen.

Notera : OmFILE>är inte specificerad, ` cut`> läser från standardingång (stdin).

Alternativ tillgängliga i cut Command

Här är en lista över de mest använda alternativen med ` cut`> kommando:



Alternativ

Beskrivning

-b, –bytes=LISTA

Väljer endast de byte som anges iLIST>(t.ex.,-b 1-3,7>).

-c, –tecken=LISTA

Väljer endast de tecken som anges iLIST>(t.ex.,-c 1-3,7>).

-d, –avgränsare=DELA

AnvändsDELIM>som fältavgränsare istället för tabbtecken.

-f, –fields=LIS

Väljer endast de fält som anges iLIST>, åtskilda av avgränsningstecknet (standard är tab).

-n

Dela inte flerbytetecken (ingen effekt om inte-b>eller-c>är specificerad).

-komplement

Invertera urvalet av fält/tecken. Skriv ut de fält/tecken som inte är markerade.

Praktiska exempel på cut Command

Låt oss överväga två filer med namn state.txt och capital.txt innehåller 5 namn på de indiska delstaterna respektive huvudstäderna.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

Utan något angett alternativ visas fel.

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Extrahera specifika bytes (-b>) Använda cut Command

-b(byte): För att extrahera de specifika byten, måste du följa alternativet -b med listan över bytenummer separerade med kommatecken. Omfång av byte kan också specificeras med bindestreck (-). Det är nödvändigt att ange en lista med bytenummer annars ger det fel.

Flikar och backsteg behandlas som ett tecken på 1 byte.

Lista utan intervall :

cut -b 1,2,3 state.txt>
lista utan intervall

lista utan intervall

Lista med intervall:

cut -b 1-3,5-7 state.txt>
lista med räckvidd

lista med räckvidd

Den använder en speciell form för att välja bytes från början till slutet av raden:

Specialform: Välja bytes från början till slutet av raden

I detta indikerar 1- från 1:a byte till slutbyte på en rad

cut -b 1- state.txt>
speciell form

speciell form med alternativet -b

I detta indikerar -3 från 1:a byte till 3:e byte av en rad

cut -b -3 state.txt>
speciell form

specialform -b alternativ

Klipp efter karaktär (-c>) Använda cut Command

-c (kolumn): För att klippa efter tecken använd alternativet -c. Detta väljer de tecken som ges till alternativet -c. Detta kan vara en lista med siffror separerade kommatecken eller ett intervall av nummer separerade med bindestreck (-).

Flikar och backsteg behandlas som en karaktär. Det är nödvändigt att ange en lista med teckennummer annars ger det fel med detta alternativ.

Syntax:

cut -c [(k)-(n)/(k),(n)/(n)] filename>

Här, k anger karaktärens startposition och n betecknar slutpositionen för tecknet i varje rad, if k och n är åtskilda av - annars är de bara teckenpositionen på varje rad från filen som tas som indata.

Extrahera specifika tecken:

cut -c 2,5,7 state.txt>
Extrahera specifika tecken

Extrahera specifika tecken

Ovan skär kommando skriver ut andra, femte och sjunde tecknet från varje rad i filen.

Extrahera de första sju tecknen:

cut -c 1-7 state.txt>
Extrahera de första sju tecknen

Extrahera de första sju tecknen

Ovan skär kommando skriver ut de första sju tecknen på varje rad från filen. Cut använder en speciell form för att välja tecken från början till slutet av raden:

Specialform: Välj tecken från början till slutet av raden

cut -c 1- state.txt>
välja tecken från början till slutet av raden

välja tecken från början till slutet av raden med alternativet -c

Kommandot ovan skrivs ut från första tecknet till slutet. Här i kommando anges endast startposition och slutpositionen utelämnas.

cut -c -5 state.txt>
välja tecken från början till slutet av raden med alternativet -c

välja tecken från början till slutet av raden med alternativet -c

Ovan kommando skriver ut startpositionen till det femte tecknet. Här utelämnas startpositionen och slutpositionen anges.

Klipp efter fält (-f>) Använda cut Command

-f (fält): -c alternativet är användbart för linjer med fast längd. De flesta unix-filer har inte rader med fast längd. För att extrahera användbar information måste du skära efter fält istället för kolumner. Listan över de angivna fälten måste separeras med kommatecken. Områden beskrivs inte med alternativet -f . skära använder flik som standardfältavgränsare men kan även fungera med andra avgränsare genom att använda -d alternativ.

Notera: Mellanslag betraktas inte som avgränsare i UNIX.

Syntax:

cut -d 'delimiter' -f (field number) file.txt>

Extrahera första fältet:

Som i filen state.txt fält separeras med mellanslag om -d alternativet inte används så skrivs hela raden ut:

cut -f 1 state.txt>
Extrahera det första fältet med alternativet -f

Extrahera det första fältet med alternativet -f

Om ` -d` alternativet används då det betraktade rymden som en fältavgränsare eller avgränsare:

cut -d ' ' -f 1 state.txt>
utrymme som fältavgränsare eller avgränsare

utrymme som fältavgränsare eller avgränsare

Extrahera fält 1 till 4:

Kommando skriver ut fält från första till fjärde av varje rad från filen.

cut -d ' ' -f 1-4 state.txt>

Kommando skriver ut fält från första till fjärde

Kommando skriver ut fält från första till fjärde

Komplettera utdata (--complement>) Använda cut Command

-komplement: Som namnet antyder kompletterar den utgången. Detta alternativ kan användas i kombination med andra alternativ antingen med -f eller med -c .

cut --complement -d ' ' -f 1 state.txt>
--komplement

-komplement

cut --complement -c 5 state.txt>

--komplement

-komplement

Utdataavgränsare (--output-delimiter>) Använda cut Command

–utgångsavgränsare: Som standard är utgångsavgränsaren samma som ingångsavgränsaren som vi anger i snittet med -d alternativ. Använd alternativet för att ändra utdataavgränsaren –output-delimiter=avgränsare .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Här ändrar cut-kommandot avgränsare(%) i standardutgången mellan fälten som specificeras med -f-alternativet.

Visa version (--version>) Använda cut Command

-version: Det här alternativet används för att visa versionen av cut som för närvarande körs på ditt system.

cut --version>

visa versionen av klippkommandot

visa versionen av klippkommandot

Hur man använder tail med pipes(|) i cut Command

Cut-kommandot kan kopplas till många andra kommandon i unix. I följande exempel utdata av katt kommandot ges som indata till skära kommando med -f alternativet för att sortera tillståndsnamnen som kommer från filen state.txt i omvänd ordning.

cat state.txt | cut -d ' ' -f 1 | sort -r>
använder svans med rör (|) i skärkommandot

använder svans med rör (|) i skärkommando

Den kan också förses med ett eller flera filter för ytterligare bearbetning. Som i följande exempel använder vi kommandot cat, head och cut och vars utdata lagras i filnamnet list.txt med hjälp av direktiv(>).

cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

omdirigering av utdata i en annan fil

hur man laddar ner musik

omdirigera utdata i en annan fil

Vanliga frågor om cut Command i Linux – Vanliga frågor

Hur använder jag cut> kommando för att extrahera specifika kolumner från en fil?

Exempel: För att extrahera den första och tredje kolumnen från en CSV-fil med namnet ` data.csv`> .

cut -d',' -f1,3 data.csv>

Kan jag använda cut> extrahera ett antal tecken från varje rad?

Jo det kan du. För att extrahera tecken 5 till 10 från varje rad i en fil med namnettext.txt>.

cut -c5-10 text.txt>

Hur kan jag ändra avgränsaren som används av cut> kommando?

Använd ` -d`> alternativet följt av avgränsningstecknet. Till exempel, för att använda ett kolon (:>) som avgränsare.

cut -d':' -f1,3 data.txt>

Är det möjligt att använda cut> extrahera fält baserat på teckenposition?

Ja, du kan ange teckenpositioner med ` -c`> alternativ. Till exempel för att extrahera tecknen 1 till 5 och 10 till 15 från varje rad.

cut -c1-5,10-15 data.txt>

Hur använder jag cut> att extrahera fält baserat på en specifik avgränsare och lagra dem i en ny fil?

Att extrahera fält separerade med kommatecken och lagra dem i en ny fil med namnet ` output.tx> t`>

cut -d',' -f1,3 data.csv>output.txt>

Slutsats

I den här artikeln diskuterade vi ` cut`> kommando i Linux som är ett mångsidigt verktyg för att extrahera specifika avsnitt från filer baserat på byteposition, tecken eller fält. Den skär upp rader med text och matar ut den extraherade informationen. Underlåtenhet att ange ett alternativ medcut>kommandot resulterar i ett fel. Flera filer kan bearbetas, men utdata inkluderar inte filnamnen. Alternativ som ` -b`> , ` -c`> , och ` -f`> tillåt extrahering med byte, tecken respektive fält. De--complement>alternativet inverterar markeringen, skriver ut det som inte är valt, och--output-delimiter>ändrar utdataavgränsaren. Kommandot innehåller även alternativ för versionsvisning och kan användas i kombination med andra kommandon genom rör för ytterligare bearbetning.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L