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
- Alternativ tillgängliga i cut Command
- Praktiska exempel på cut Command
- Extrahera specifika bytes (-b) Använd kommandot cut
- Klipp efter tecken (-c) Använd kommandot klipp
- Klipp efter fält (-f) Använd klippkommandot
- Komplettera utdata (–komplement) Använda cut-kommando
- Output Delimiter (–output-delimiter) Använda cut Command
- Visa version (–version) Med cut-kommando
- Hur man använder tail med pipes(|) i cut Command
- Vanliga frågor om cut Command i Linux – Vanliga frågor
Syntax för cut-kommando
Den grundläggande syntaxen för cut> kommandot är:
cut OPTION... [FILE]...
Var
`OPTION`> anger önskat beteende
` FILE> `> representerar indatafilen.
Notera : Om FILE> ä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 i |
| -c, –tecken=LISTA | Väljer endast de tecken som anges i |
| -d, –avgränsare=DELA | Används |
| -f, –fields=LIS | Väljer endast de fält som anges i |
| -n | Dela inte flerbytetecken (ingen effekt om inte |
| -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 med intervall:
cut -b 1-3,5-7 state.txt
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 med alternativet -b
I detta indikerar -3 från 1:a byte till 3:e byte av en rad
cut -b -3 state.txt
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
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
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 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
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
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
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
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
cut --complement -c 5 state.txt
-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='%'
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
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ä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
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 namnet text.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 med cut> 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