Het cut-commando wordt gebruikt voor het uitsnijden van secties van de standaard invoerstroom of databestanden met behulp van het Unix-cut-hulpprogramma. Het maakt deel uit van het GNU Coreutils-pakket en het BSD-basissysteem en is daarom standaard beschikbaar op alle Linux- en BSD-systemen. De cut-opdracht in Unix maakt het mogelijk om secties te knippen op basis van byteposities, karakters of velden gescheiden door een scheidingsteken zoals de ‘-‘ of ‘:’ karakters. Onze gids biedt een praktische inleiding tot het Linux cut-commando aan de hand van een goed samengestelde reeks voorbeelden. Probeer ze uit naast het lezen van dit bericht om ervaring uit de eerste hand op te doen.

Voorbeelden van Linux Cut Command in Unix

Onze experts hebben hun best gedaan om deze gids is vriendelijk voor nieuwe Linux-gebruikers. Bovendien zal het dienen als een handig referentiepunt voor ervaren gebruikers. We moedigen lezers aan om de commando’s uit te proberen terwijl ze ze verkennen. We zullen deze Linux Cut-opdrachten demonstreren met behulp van zowel de standaardinvoer als een referentiebestand. U kunt de inhoud van het bestand van hieruit kopiëren en in uw systeem aanmaken.

Referentiebestand gebruikt voor demonstratiedoeleinden

We gebruiken een tekstbestand met de naam test.txt woonachtig in de homedirectory. Het bestand bevat vijf rijen of regels die allemaal vier kolommen bevatten. Elke rij bevat de naam van een land, haar hoofdstad, valuta en bevolking; allemaal gescheiden door het scheidingsteken dubbele punt. Maak dit bestand in uw systeem en vul het aan met de onderstaande inhoud.

Syntaxis van het Cut-commando in Unix

Het Linux cut-commando heeft de onderstaande syntaxis.

cut OPTION... ...

Om tekst uit de invoerstroom te knippen, ‘ Ik gebruik het echo-commando en pijp (|) zijn uitvoer naar het cut-commando. Dezelfde methode kan worden gebruikt voor het leveren van cut-invoer van cat.

Tekst knippen op basis van byteposities

De b-optie die wordt geboden door het hulpprogramma knippen stelt ons in staat om delen van een tekst te knippen. op basis van hun byteposities. Hiervoor moeten we het cut-commando gebruiken met de vlag -b gevolgd door de byte-nummers.

1. Knip slechts een enkele byte uit de invoerstroom

$ echo "cutting text from input" | cut -b 1

Het bovenstaande commando echoot de string “tekst knippen uit invoer” naar de standaarduitvoer en leidt deze als invoer naar het cut commando. Het cut commando zal alleen de eerste byte (c) uit deze string knippen, aangezien er maar 1 was voorzien van de -b vlag.

2. Knip specifieke bytes uit de Input Stream

$ echo "cutting text from input" | cut -b 1,3

Deze opdracht zal alleen de eerste en derde byte van de string “tekst uit invoer knippen” knippen en “ct” weergeven als output. Probeer het uit met een aantal verschillende byteposities.

3. Knip bereik van bytes uit de invoerstroom

$ echo "cutting text from input" | cut -b 1-12

Het bovenstaande commando zal het bytebereik 1-12 uit de gegeven string knippen en “snijtekst” afdrukken op de standaarduitvoer. Het verstrekken van bytebereiken die buiten de bezetting van de string vallen, zal resulteren in een bericht met de melding “cut: invalid byte or character range”.

4. Knip slechts een enkele byte uit het tekstbestand

$ cut -b 1 test.txt

Dit commando toont alleen de eerste bytes van elk van de vijf rijen in het bestand test.txt. Het is equivalent aan het commando $ cat test.txt | cut -b 1

5. Knip specifieke bytes uit het tekstbestand

$ cut -b 1,3 test.txt

Het bovenstaande commando verwijdert alleen de eerste en derde bytes van elke rij. kan elk byte-nummer specificeren zolang ze binnen het bereik van beschikbare bytes vallen.

6. Knip bereik van bytes uit het tekstbestand

$ cut -b 1-12 test.txt

Deze opdracht zal de eerste tot twaalfde bytes van elke rij in het test.txt-bestand uitvoeren. Merk op dat de functionaliteit die deze opdracht heeft met de derde opdracht overeenkomt.

7. Snijd de eerste 7 bytes in alfabetische volgorde

$ cut -b 1-7 test.txt | sort

We kunnen de uitvoer van het cut-commando als invoer voor het sort-commando voor het alfabetisch weergeven van de eerste zeven bytes van elke rij. Voor alfabetisch sorteren heeft het sorteercommando geen opties nodig.

8. Knip de eerste 7 bytes in omgekeerde volgorde

$ cut -b 1-7 test.txt | sort -r

Dit cut-commando zal de eerste 7 bytes uit elke rij knippen en ze in omgekeerde volgorde uitvoeren. Kijk hoe de uitvoer van het cut-commando met een pipe naar het sort-commando wordt gestuurd.

9. Knippen van de vijfde byte tot het einde van de invoerstroom

$ echo "cutting text from input" | cut -b 5-

Het bovenstaande knipcommando zal de tekst knippen van de vijfde byte tot het einde van de string. Deze opdracht is handig wanneer u van een opgegeven bytepositie moet knippen tot het einde van de invoerstroom. Verander simpelweg de waarde van de b vlag terwijl je de volgstand houdt.

10. Knippen van de vijfde byte tot het einde van het bestand

$ cut -b 5- test.txt

Dit commando zal beginnen met het knippen van elk van de vijf testrijen.txt vanaf de vijfde bytepositie en eindig pas nadat elke rij is beëindigd. Het koppelteken (-) is verplicht voor deze bewerking.

11. Snijd een gespecificeerd aantal bytes beginnend bij de eerste

$ echo "cutting text from input" | cut -b -5

Dit commando zal de eerste vijf bytes van de invoerstring knippen. U kunt van de startbyte naar elke andere bytepositie knippen door alleen de waarde van de vlag b te vervangen. Denk eraan om het voorafgaande koppelteken (-) toe te voegen, anders zal de uitvoer niet zijn zoals verwacht.

12. Knip van de eerste byte naar een gespecificeerde positie uit het bestand

$ cut -b -5 test.txt

Het bovenstaande commando zal alleen de eerste vijf bytes van elke regel uit ons tekstbestand knippen. Merk op hoe het koppelteken (-) wordt gebruikt voor de opdrachten 9-12 in deze lijst.

Tekst knippen op basis van tekens

Met het cut-commando in Unix kunnen gebruikers een tekstgedeelte knippen op basis van karakters. Wanneer u grote bestandsverwerkingstaken uitvoert, moet u dit vrij vaak doen. Probeer ze uit en merk de overeenkomsten op tussen op tekens gebaseerd knippen en op bytes gebaseerd knippen.

13. Slechts één teken uit de invoerstroom knippen

$ echo "cutting text from input" | cut -c 1

Het bovenstaande commando snijdt het eerste teken uit de standaardinvoer en geeft het weer in de terminal. In dit geval is het “c”. Verander uw string in iets anders om dit duidelijk te begrijpen.

14. Specifieke tekens uit de invoerstroom knippen

$ echo "cutting text from input" | cut -c 1,3

Dit commando zal alleen de eerste en derde tekens van de invoerstring knippen en deze tonen. U kunt proberen andere tekens te knippen, maar vergeet niet de tekenlimiet van uw tekenreeks niet te overschrijden.

15. Tekenreeks knippen uit de invoerstroom

$ echo "cutting text from input" | cut -c 1-12

In het geval van dit commando zal “cut” tekens knippen van de eerste positie tot de twaalfde positie. Het resultaat is “tekst knippen”. Let op de overeenkomsten tussen dit Linux commando knippen en het derde commando.

16. Knip slechts een enkel teken uit het tekstbestand

$ cut -c 1 test.txt

Dit commando zal alleen de eerste karakters van elk van de vijf rijen van ons bestand test.txt weergeven. Het is equivalent aan het commando $ cat test.txt | cut -c 1 en geeft hetzelfde resultaat zoals we zouden krijgen als we de bytevlag gebruiken.

17. Specifieke tekens uit het tekstbestand knippen

$ cut -c 7,10 test.txt

Het bovenstaande commando snijdt alleen de zevende en tiende lettertekens van elke vijf rijen. U kunt willekeurige tekenposities specificeren zolang ze binnen het bereik van beschikbare tekens vallen.

18. Knip een reeks tekens uit het tekstbestand

Dit commando zal de eerste tot twaalfde karakters van elke regel in het test.txt-bestand uitvoeren. Het cut-commando in Unix gedraagt zich hetzelfde bij het knippen van een reeks karakters en een reeks bytes.

19. Knip de eerste 5 tekens in alfabetische volgorde

$ cut -c 1-5 test.txt | sort

U kunt de uitvoer van het knipcommando opgeven als invoer voor het sorteercommando om de eerste vijf bytes van elke rij alfabetisch. Het sorteercommando vereist geen opties bij het alfabetisch sorteren.

20. Knip de eerste 5 karakters in omgekeerde volgorde

$ cut -c 1-5 test.txt | sort -r

Dit knip commando zal de eerste vijf karakters uit elke rij knippen en ze tonen na het sorteren in omgekeerde volgorde. Kijk hoe de uitvoer van het cut-commando met een pipe naar het sort-commando wordt gestuurd.

21. Knippen van het vijfde teken tot het einde van de invoerstroom

$ echo "cutting text from input" | cut -c 5-

De bovenstaande opdracht knippen zal de tekst knippen vanaf de vijfde byte tot het einde van de tekenreeks . Het kan handig zijn wanneer u vanaf een opgegeven tekenpositie moet knippen tot het einde van de invoerstroom. Verander eenvoudig de waarde na b terwijl u de volgstand behoudt.

22. Knippen van het vijfde teken tot het einde van het bestand

$ cut -c 5- test.txt

Dit commando zal beginnen met het knippen van elk van de vijf rijen van het test.txt-bestand vanaf hun vijfde teken positie en zal eindigen nadat het einde van elke regel is bereikt. Het koppelteken (-) is verplicht voor dit soort bewerking.

23. Snijd een gespecificeerd aantal karakters beginnend vanaf de eerste positie

$ echo "cutting text from input" | cut -c -5

Dit commando zal alleen de eerste vijf karakterposities van onze invoer knippen. U kunt van het startteken naar elke andere tekenpositie knippen door gewoon de waarde -c te vervangen. Denk eraan om het voorafgaande koppelteken (-) toe te voegen, anders zal de uitvoer niet hetzelfde zijn als u verwacht.

24. Knip van het eerste teken naar een gespecificeerde positie uit het bestand

$ cut -c -5 test.txt

Dit knipcommando in Unix zal de eerste vijf karakters van elke regel uit de bestandstest knippen. tekst. Merk op hoe het koppelteken (-) wordt gebruikt voor de opdrachten 21-24 in deze lijst.

Tekst uit kolommen knippen met velden en scheidingstekens

Met de opdracht knippen kunnen gebruikers delen van een tekst heel gemakkelijk. Hiervoor moeten we zowel de d- als de f-vlag van cut gebruiken. De vlag d staat voor scheidingstekens en f voor velden. Scheidingstekens zijn speciale tekens die een gedeelte van een tekst van anderen scheiden. Veelvoorkomende voorbeelden zijn ‘-‘, ‘:’ en ”” (spatie). Het referentiebestand dat we gebruiken heeft ‘:’ als scheidingsteken.

25. Knip de eerste sectie van de invoerstroom

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

De bovenstaande cut-opdracht zal de eerste sectie van de tekst (“Laten we” in dit geval) uit de invoerstroom knippen. Merk op dat de waarde van het scheidingsteken -d een enkele spatie is. Probeer het met tekst gescheiden door een dubbele punt en kijk wat er voor jezelf gebeurt.

26. Knip het eerste deel van een bestand

$ cut -d ":" -f 1 test.txt

Met deze opdracht worden de eerste kolommen van elke rij in ons referentiebestand geretourneerd en wordt de naam van alle vijf landen afgedrukt. De waarde die aan de vlag als scheidingsteken werd opgegeven, was een dubbele punt, omdat zo scheidt ons bestand de kolommen.

27. Knip specifieke secties van de invoerstroom uit

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

Hier hebben we cut geïnstrueerd om alleen de eerste drie velden van de opgegeven invoertekenreeks. Het wordt gedaan met behulp van een door komma’s gescheiden reeks veldposities. De uitvoer van dit commando is ‘Laten we dit knippen’.

28. Knip specifieke secties van een Bestand

$ cut -d ":" -f 1,2,3 test.txt

Deze co mmand biedt ook dezelfde soort uitvoer als het vorige commando. Hier werkt cut gewoon aan een bestand in plaats van aan de standaardinvoer, dat is alles. Het moet de naam, het kapitaal en de valuta van elk land op de lijst weergeven. Let echter op het verschil tussen hun scheidingstekens (spatie versus dubbele punt).

29. Bereik van velden uit de invoerstroom knippen

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

Het bovenstaande commando zal de eerste vijf velden van de string knippen en weergeven in de terminal. De apostrofs zijn vereist wanneer een spatie wordt gebruikt als scheidingsteken tussen meerdere velden.

30. Bereik van velden uit een bestand knippen

$ cut -d ":" -f 1-3 test.txt

Dit knipcommando zal elk van de eerste drie kolommen van ons tekstbestand knippen en weergeven als de uitvoer. Het zou hetzelfde resultaat moeten weergeven als geleverd door de opdracht voorafgaand aan de vorige. De apostrofs zijn niet verplicht voor tekens zoals – of:.

31. Knip elk item uit een specifiek veld en vermeld ze alfabetisch

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

Stel dat u de namen van de vijf landen in onze lijst in alfabetische volgorde moet achterhalen. kan hiervoor het bovenstaande commando gebruiken. Het toont de landen alfabetisch gesorteerd. Een vervanging van de waarde van de f vlag laat je dit op andere velden doen.

32. Knip elk item uit een veld en vermeld ze in alfabetisch omgekeerde volgorde

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

Deze opdracht voert dezelfde bewerking uit als de bovenstaande, maar sorteert de items in omgekeerde volgorde manier, dat is alles. De uitvoer wordt hier gewijzigd vanwege de -r vlag die is doorgegeven om te sorteren.

33. Knippen van een vast veld tot het einde van de invoerstroom

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

Dit knipcommando zal knippen vanaf het tweede veld tot het einde van de string. Het kan handig zijn wanneer u vanaf een bepaalde positie moet snijden tot het einde van de invoer. Je kunt de waarde van -f veranderen terwijl je de volg – aan houdt om uit verschillende velden te knippen.

34. Knippen van een vast veld naar het einde van een bestand

$ cut -d ":" -f 2- test.txt

Wanneer het op deze manier wordt gebruikt, zal het knip-commando beginnen met knippen vanaf het gespecificeerde veld en tot het einde gaan van elke regel. In dit geval worden het kapitaal, de valuta en de bevolking van elk van de vijf landen op de lijst afgedrukt.

35. Een gespecificeerd aantal kolommen knippen te beginnen bij de eerste

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

Dit commando zal alleen de eerste vijf velden van de gegeven invoer knippen. U kunt van de startkolom naar elke andere kolompositie knippen door de waarde -f te vervangen. U moet echter het voorafgaande koppelteken (-) toevoegen, anders komt de uitvoer niet overeen met uw verwachting.

36. Enkele gespecificeerde kolommen van een bestand knippen, beginnend bij de eerste

$ cut -d ":" -f -2 test.txt

Deze Linux cut-opdracht zal ons bestand test.txt uit de eerste kolom knippen en eindigen na het is klaar met het uitsnijden van het tweede commando. De uitvoer van dit commando zal dus eenvoudig de naam van elk land en hun respectievelijke hoofdsteden weergeven.

37. Meerdere velden met CSV-bestanden knippen

$ cut -d "," -f 1,2 file.csv

De cut-opdracht zal vaak een bruikbaar hulpmiddel blijken te zijn wanneer u met enorme CSV-documenten werkt. Het bovenstaande commando zal bijvoorbeeld de eerste twee kolommen van een door komma’s gescheiden CSV-bestand met de naam file.csv knippen.

38.Knip specifieke velden van CSV-bestanden en sorteer ze in omgekeerde volgorde

$ cut -d "," -f 1,3,5 file.csv | sort -r

Het bovenstaande commando zal de eerste, derde en vijfde kolom van een door komma’s gescheiden CSV knippen bestand met de naam file.csv en geef de uitvoer in omgekeerde volgorde weer.

Enkele diverse Linux Cut-opdrachten voor experts

De cut-opdracht kan worden gebruikt voor geavanceerde bestandsverwerking door deze te gebruiken met de juiste filters en andere robuuste Linux-opdrachten. Hieronder bespreken we enkele van dergelijke opdrachten die u op de lange termijn ten goede kunnen komen.

39. Inspecteer het passwd-bestand met het Cut-commando

$ cut -d ":" -f1 /etc/passwd

Het passwd-bestand dat in / etc in de meeste systemen is opgeslagen, bevat zeer gevoelige informatie over het systeem en zijn gebruikers. U kunt dit bestand snel inspecteren met de opdracht knippen. Scheidingsteken ‘:’ wordt gebruikt omdat de kolommen van dit bestand hierdoor worden gescheiden. Verander de waarde van -f om verschillende velden te bewaken.

40. Knip specifieke velden en toon alleen de unieke invoer

$ cut -d ":" -f 3 test.txt | uniq -u

Dit knipcommando in Linux zal de derde kolom van het bestand test.txt knippen en alleen de unieke invoer tonen . Dus voor dit bestand bevat de uitvoer slechts drie valuta’s – namelijk Euro, Lira en Yen.

41. Knip alle bytes van de invoerstroom behalve de gespecificeerde exemplaren

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

Dit knipcommando zal alle karakters van de gegeven invoerstring knippen behalve degene die aan -b zijn geleverd. De byteposities eerste, derde, vijfde en zevende worden dus weggelaten uit de uitvoer.

42. Alle bytes van een bestand knippen behalve de gespecificeerde

$ cut -b 2,4,6 test.txt --complement

Bij gebruik op deze manier, zal de cut-opdracht alle bytes van het bestand test.txt knippen, behalve degene genoemd in het commando. De uitvoer bevat dus niet de tweede, vierde en zesde bytes van elke regel.

43. Knip alle tekens van de invoerstroom behalve de gespecificeerde tekens

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

Dit commando onthoudt zich van het knippen van de eerste, derde, vijfde en zevende tekens van de invoerstring en in plaats daarvan knipt alle andere karakters behalve deze vier.

44. Knip alle tekens van een bestand behalve de gespecificeerde bestanden

$ cut -c 2,4,6 test.txt --complement

In het geval van deze opdracht bevat de uitvoer alle tekens van de test.txt-bestanden behalve die genoemd. De tekens als tweede, vierde en zesde worden dus niet weergegeven.

45. Knip alle invoersecties af behalve de gespecificeerde

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

Het bovenstaande commando zal de string “cut input sectie voor sectie” uitvoeren. Het zal dus alle invoergedeelten weergeven zonder degene die worden genoemd na de veldvlag.

46. Alle kolommen van een bestand knippen behalve de gespecificeerde

$ cut -d ":" -f 2,3 test.txt --complement

Dit commando zal alleen de eerste en laatste kolommen van het bestand test.txt knippen. U kunt dus gemakkelijk sommige velden deselecteren bij het verwerken van grote tabeldocumenten met behulp van de complementvlag.

47. Knip een sectie van de invoer en draai ze karaktergewijs om

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

De bovenstaande Linux-opdracht zal de eerste en derde sectie van de invoer knippen en ze karaktergewijs omkeren. Merk op hoe de uitvoer van een commando wordt ingevoerd als invoer voor andere commando’s.

48. Specifieke kolommen in een bestand knippen en ze tekengewijs omkeren

$ cut -d ":" -f 1,3 test.txt | rev

Met deze opdracht worden alleen de opgegeven velden van het bestand test.txt geknipt en wordt het resultaat tekensgewijs weergegeven omgekeerde manier.

49. Wijzig de uitvoerscheidingsteken van het Cut-commando

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

Cut stelt ons in staat om het uitvoerscheidingsteken te wijzigen bij het weergeven van het resultaat. Het bovenstaande commando verwijdert alle secties van de door komma’s gescheiden lijst, maar vervangt de komma’s door spaties bij het tonen van het resultaat.

50. Voorbeeld van Cut + Sed-commando met tabscheidingsteken

$ sed "s/:/\t/g" test.txt | cut -f 1-4

Het laatste cut-commando van onze lijst gebruikt het machtige krachtige sed-hulpprogramma om de dubbele punten in ons bestand te vervangen door tabs . Je kunt \ t vervangen door andere karakters zoals – of; voor het veranderen naar een outputscheidingsteken naar keuze.

Gedachten beëindigen

Het cut-commando in Unix is een veelzijdige tool die talrijke voordelen kan bieden voor gebruikers die regelmatig grote bestanden moeten verwerken. We hebben de 50 beste Linux cut-opdracht geschetst om u vertrouwd te maken met dit fantastische hulpprogramma. U moet ze afzonderlijk uitproberen en wijzigingen aanbrengen in de verschillende beschikbare opties. Dat zal u helpen de verschillende variaties van de cut-opdracht grondig te begrijpen. Hopelijk waren we succesvol in onze zoektocht om u zo goed mogelijk te helpen. Blijf bij ons voor meer aankomende handleidingen over nuttige Linux-opdrachten.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *