Het cut-commando in Linux is een commando voor het uitknippen van de secties van elke regel bestanden en het schrijven van het resultaat naar standaarduitvoer. Het kan worden gebruikt om delen van een regel te knippen op bytepositie, teken en veld. Het commando Knippen snijdt een regel af en extraheert de tekst. Het is noodzakelijk om een optie op te geven met een commando, anders geeft het een foutmelding. Als er meer dan één bestandsnaam wordt opgegeven, worden de gegevens van elk bestand niet voorafgegaan door de bestandsnaam.
Inhoudsopgave
- Syntaxis van snijopdracht
- Opties Beschikbaar in Cut Command
- Praktische voorbeelden van snijcommando
- Extraheer specifieke bytes (-b) met behulp van de opdracht Cut
- Knippen op teken (-c) Met behulp van de opdracht Knip
- Knippen per veld (-f) Met behulp van het knipcommando
- Uitvoer aanvullen (–complement) Met behulp van de opdracht Knip
- Uitvoerscheidingsteken (–uitvoerscheidingsteken) Gebruik de opdracht Knip
- Versie weergeven (–versie) Met behulp van de opdracht Knip
- Hoe staart met pijpen(|) te gebruiken in Cut Command
- Veelgestelde vragen over Cut Command in Linux – Veelgestelde vragen
Syntaxis van snijopdracht
De basissyntaxis van decut>opdracht luidt:
cut OPTION... [FILE]...>
Waar
`OPTION`> specificeert het gewenste gedrag
` FILE> `>vertegenwoordigt het invoerbestand.
Opmerking : AlsFILE>is niet gespecificeerd, ` cut`> leest van standaardinvoer (stdin).
Opties Beschikbaar in Cut Command
Hier is een lijst met de meest gebruikte opties met de ` cut`> commando:
| Keuze | Beschrijving |
|---|---|
| -b, –bytes=LIJST | Selecteert alleen de bytes die zijn opgegeven in |
| -c, –characters=LIJST | Selecteert alleen de tekens die zijn opgegeven in |
| -d, –delimiter=DELEN | Toepassingen |
| -f, –velden=LIS | Selecteert alleen de velden die zijn opgegeven in |
| -N | Splits geen multi-bytetekens (geen effect tenzij |
| -aanvulling | Keer de selectie van velden/tekens om. Druk de velden/tekens af die niet zijn geselecteerd. |
Praktische voorbeelden van snijcommando
Laten we twee bestanden met een naam bekijken staat.txt En hoofdletter.txt bevat 5 namen van respectievelijk de Indiase staten en hoofdsteden.
$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>
Als er geen optie is opgegeven, wordt er een fout weergegeven.
$ cut state.txt cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>
Specifieke bytes extraheren (-b>) Snijopdracht gebruiken
-b(byte): Om de specifieke bytes te extraheren, moet je de optie -b volgen met de lijst met bytenummers gescheiden door komma's. Het bereik van bytes kan ook worden opgegeven met behulp van het koppelteken (-). Het is noodzakelijk om een lijst met bytenummers op te geven, anders geeft dit een fout.
Tabbladen en backspaces worden behandeld als een teken van 1 byte.
Lijst zonder bereiken :
cut -b 1,2,3 state.txt>

lijst zonder bereik
Lijst met bereiken:
cut -b 1-3,5-7 state.txt>

lijst met bereik
Het gebruikt een speciaal formulier voor het selecteren van bytes van het begin tot het einde van de regel:
Speciale vorm: bytes selecteren van begin tot einde van de regel
Hierin geeft 1- aan van de eerste byte tot de eindbyte van een regel
cut -b 1- state.txt>

speciaal formulier met -b optie
Hierin geeft -3 aan van de eerste byte tot de derde byte van een regel
cut -b -3 state.txt>

speciale vorm -b optie
Gesneden op karakter (-c>) Snijopdracht gebruiken
-c (kolom): Gebruik de optie -c om op teken te knippen. Hiermee worden de tekens geselecteerd die aan de optie -c worden gegeven. Dit kan een lijst met getallen zijn, gescheiden door komma's, of een reeks getallen gescheiden door een koppelteken (-).
Tabbladen en backspaces worden behandeld als een personage. Het is noodzakelijk om een lijst met tekennummers op te geven, anders geeft deze optie een fout.
Syntaxis:
cut -c [(k)-(n)/(k),(n)/(n)] filename>
Hier, k geeft de startpositie van het personage aan en N geeft de eindpositie van het teken op elke regel aan, if k En N worden gescheiden door - anders zijn ze alleen de positie van het teken op elke regel uit het bestand dat als invoer wordt gebruikt.
Specifieke tekens extraheren:
cut -c 2,5,7 state.txt>

Extraheer specifieke tekens
Bovenstaande opdracht voor knippen drukt het tweede, vijfde en zevende teken van elke regel van het bestand af.
Extraheer de eerste zeven tekens:
cut -c 1-7 state.txt>

Extraheer de eerste zeven tekens
Bovenstaande opdracht voor knippen drukt de eerste zeven tekens van elke regel uit het bestand af. Cut gebruikt een speciaal formulier voor het selecteren van tekens van het begin tot het einde van de regel:
Speciaal formulier: tekens selecteren van het begin tot het einde van de regel
cut -c 1- state.txt>

het selecteren van tekens van het begin tot het einde van de regel met de optie -c
Bovenstaande opdracht wordt afgedrukt vanaf het eerste teken tot het einde. Hierbij wordt in commando alleen de startpositie opgegeven en de eindpositie weggelaten.
cut -c -5 state.txt>

het selecteren van tekens van het begin tot het einde van de regel met de optie -c
Bovenstaande opdracht drukt de startpositie af tot het vijfde teken. Hierbij wordt de startpositie weggelaten en de eindpositie gespecificeerd.
Gesneden per veld (-f>) Snijopdracht gebruiken
-f (veld): -c optie is handig voor lijnen met een vaste lengte. De meeste Unix-bestanden hebben geen regels met een vaste lengte. Om de nuttige informatie te extraheren, moet u in velden snijden in plaats van in kolommen. De lijst met het opgegeven veldnummer moet worden gescheiden door een komma. Bereiken worden niet beschreven met de optie -f . snee toepassingen tabblad als standaard veldscheidingsteken, maar kan ook met een ander scheidingsteken werken door gebruik te maken van -D keuze.
Opmerking: Spatie wordt in UNIX niet als scheidingsteken beschouwd.
Syntaxis:
cut -d 'delimiter' -f (field number) file.txt>
Extraheer het eerste veld:
Zoals in het bestand staat.txt velden worden gescheiden door een spatie. Als de optie -d niet wordt gebruikt, wordt de hele regel afgedrukt:
cut -f 1 state.txt>

Extraheer het eerste veld met de optie -f
Als ' -d` optie wordt gebruikt, beschouwt deze de spatie als veldscheidingsteken of scheidingsteken:
cut -d ' ' -f 1 state.txt>

spatie als veldscheidingsteken of scheidingsteken
Velden 1 t/m 4 extraheren:
De opdracht drukt het veld af van de eerste tot de vierde van elke regel uit het bestand.
cut -d ' ' -f 1-4 state.txt>

Commando drukt veld af van eerste naar vierde
Complementuitvoer (--complement>) Snijopdracht gebruiken
-aanvulling: Zoals de naam al doet vermoeden, vormt het een aanvulling op de output. Deze optie kan worden gebruikt in combinatie met andere opties -F of met -C .
cut --complement -d ' ' -f 1 state.txt>

-aanvulling
cut --complement -c 5 state.txt>

-aanvulling
Uitvoerscheidingsteken (--output-delimiter>) Snijopdracht gebruiken
–uitvoerscheidingsteken: Standaard is het uitvoerscheidingsteken hetzelfde als het invoerscheidingsteken dat we in de snede opgeven -D keuze. Gebruik de optie om het uitvoerscheidingsteken te wijzigen –uitvoerscheidingsteken=scheidingsteken .
cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

Hier knipt u de opdrachtwijzigingen delimiter(%) in de standaarduitvoer tussen de velden die zijn opgegeven met de optie -f.
Weergaveversie (--version>) Snijopdracht gebruiken
-versie: Deze optie wordt gebruikt om de versie van Cut weer te geven die momenteel op uw systeem draait.
cut --version>

versie van het snijcommando weergeven
Hoe staart met pijpen(|) te gebruiken in Cut Command
Het cut-commando kan worden gecombineerd met vele andere commando's van Unix. In het volgende voorbeeld wordt de uitvoer van de kat commando wordt gegeven als invoer voor de snee commando met -F optie om de statusnamen afkomstig uit het bestand state.txt in de omgekeerde volgorde te sorteren.
cat state.txt | cut -d ' ' -f 1 | sort -r>

met behulp van staart met pijp (|) in het snijcommando
Het kan ook worden voorzien van een of meer filters voor aanvullende verwerking. Net als in het volgende voorbeeld gebruiken we de commando's cat, head en cut en waarvan de uitvoer wordt opgeslagen in de bestandsnaam list.txt met behulp van richtlijn(>).
cat state.txt | head -n 3 | cut -d ' ' -f 1>lijst.txt>
cat list.txt>

aanwijzingen in c
uitvoer naar een ander bestand omleiden
Veelgestelde vragen over Cut Command in Linux – Veelgestelde vragen
Hoe gebruik ik de cut> commando om specifieke kolommen uit een bestand te extraheren?
Voorbeeld: Om de eerste en derde kolom te extraheren uit een CSV-bestand met de naam ` data.csv`> .
cut -d',' -f1,3 data.csv>
Kan ik gebruiken cut> om uit elke regel een reeks tekens te halen?
Ja, dat kan. Om de tekens 5 tot en met 10 uit elke regel van een bestand met de naam te extraherentext.txt>.
cut -c5-10 text.txt>
Hoe kan ik het scheidingsteken wijzigen dat wordt gebruikt door de cut> commando?
Gebruik de ' -d`> optie gevolgd door het scheidingsteken. Als u bijvoorbeeld een dubbele punt (:>) als scheidingsteken.
cut -d':' -f1,3 data.txt>
Is het mogelijk om te gebruiken cut> velden extraheren op basis van tekenpositie?
Ja, u kunt tekenposities opgeven met de ` -c`> keuze. Om bijvoorbeeld de tekens 1 tot en met 5 en 10 tot en met 15 uit elke regel te extraheren.
cut -c1-5,10-15 data.txt>
Hoe gebruik ik cut> velden extraheren op basis van een specifiek scheidingsteken en deze opslaan in een nieuw bestand?
Om velden, gescheiden door komma's, uit te pakken en op te slaan in een nieuw bestand met de naam ` output.tx> t`>
cut -d',' -f1,3 data.csv>uitvoer.txt>
Conclusie
In dit artikel bespraken we de ` cut`> commando in Linux, een veelzijdig hulpmiddel voor het extraheren van specifieke secties uit bestanden op basis van bytepositie, teken of veld. Het snijdt tekstregels in stukken en voert de geëxtraheerde gegevens uit. Er is geen optie opgegeven bij decut>opdracht resulteert in een fout. Er kunnen meerdere bestanden worden verwerkt, maar de uitvoer bevat niet de bestandsnamen. Opties zoals ` -b`> , ` -c`> , en ` -f`> sta extractie per byte, teken en veld toe. De--complement>optie keert de selectie om, drukt af wat niet is geselecteerd, en--output-delimiter>verandert het uitvoerscheidingsteken. Het commando bevat ook opties voor versieweergave en kan in combinatie met andere commando's via pipelines worden gebruikt voor extra verwerking.
?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L