GeeksforGeeks (Nederlands)

Het cut commando in UNIX is een commando om de secties uit elke regel met bestanden te knippen en het resultaat naar de standaard output te schrijven. Het kan worden gebruikt om delen van een regel op bytepositie, teken en veld te knippen. In feite snijdt de cut-opdracht een regel door en extraheert de tekst. Het is noodzakelijk om de optie met het commando te specificeren, anders geeft het een foutmelding. Als er meer dan één bestandsnaam is opgegeven, worden de gegevens van elk bestand niet voorafgegaan door de bestandsnaam.

Syntaxis:

cut OPTION... ...

Laten we eens kijken naar twee bestanden met de naam state.txt en capital.txt bevat 5 namen van de Indiase staten en hoofdletters.

$ cat state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Zonder enige gespecificeerde optie geeft het een foutmelding.

$ cut state.txtcut: you must specify a list of bytes, characters, or fieldsTry "cut --help" for more information.

Opties en hun beschrijving met voorbeelden:

1. -b (byte): om de specifieke bytes te extraheren, moet u de optie -b volgen met de lijst met bytegetallen gescheiden door kommas. Het bereik van bytes kan ook worden opgegeven met het koppelteken (-). Het is noodzakelijk om een lijst met byte-nummers op te geven, anders geeft het een fout. Tabs en backspaces worden behandeld als een teken van 1 byte.

Het gebruikt een speciaal formulier voor het selecteren van bytes vanaf het begin tot het einde van de regel:

In this, 1- indicate from 1st byte to end byte of a line$ cut -b 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhIn this, -3 indicate from 1st byte to 3rd byte of a line$ cut -b -3 state.txtAndAruAssBihChh

2. -c (kolom): Gebruik de optie -c om per teken te knippen. Dit selecteert de tekens die aan de optie -c worden gegeven. Dit kan een lijst met door getallen gescheiden kommas zijn of een reeks getallen gescheiden door een koppelteken (-). Tabbladen en backspaces worden als een personage behandeld. Het is noodzakelijk om een lijst met karakternummers te specificeren, anders geeft het een fout bij deze optie.

Syntaxis:

$cut -c filename

Hier geeft k de beginpositie van het teken en n geeft de eindpositie van het teken op elke regel aan, als k en n gescheiden zijn door “-“, anders zijn ze alleen de positie van het teken in elke regel uit het bestand dat als invoer wordt gebruikt.

$ cut -c 2,5,7 state.txtnrrahsmirhti

De bovenstaande cut-opdracht drukt het tweede, vijfde en zevende teken af van elke regel van het bestand.

$ cut -c 1-7 state.txtAndhraArunachAssamBiharChhatti

Bovenstaande cut-opdracht drukt de eerste zeven tekens van elke regel uit het bestand af.

Cut gebruikt een speciaal formulier voor het selecteren van tekens vanaf het begin tot het einde van de regel:

$ cut -c 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhAbove command prints starting from first character to end. Here in command only startingposition is specified and the ending position is omitted.$ cut -c -5 state.txtAndhrArunaAssamBiharChhatAbove command prints starting position to the fifth character. Here the starting positionis omitted and the ending position is specified.

3. -f (veld): -c optie is handig voor lijnen met een vaste lengte. De meeste Unix-bestanden hebben geen vaste- lengte regels Om de nuttige informatie te extraheren, moet u knippen door velden in plaats van kolommen Lijst van de velden nummer speci fied moet worden gescheiden door kommas. Bereiken worden niet beschreven met de optie -f. cut gebruikt tab als een standaard scheidingsteken voor velden, maar kan ook werken met een ander scheidingsteken door de optie -d te gebruiken.
Opmerking: spatie wordt niet beschouwd als scheidingsteken in UNIX.

Syntaxis:

$cut -d "delimiter" -f (field number) file.txt

Net als in het bestand state.txt worden velden gescheiden door een spatie als de optie -d niet wordt gebruikt, wordt de hele regel afgedrukt:

$ cut -f 1 state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Als de optie -d wordt gebruikt, wordt de spatie als een veldscheidingsteken of scheidingsteken beschouwd:

$ cut -d " " -f 1 state.txtAndhraArunachalAssamBiharChhattisgarh
Command prints field from first to fourth of each line from the file.Command:$ cut -d " " -f 1-4 state.txtOutput:Andhra PradeshArunachal PradeshAssamBiharChhattisgarh

4. –Complement: zoals de naam suggereert, vormt het een aanvulling op de output. Deze optie kan worden gebruikt in combinatie met andere opties met -f of met -c.

5. –Output-delimiter: Standaard is het output delimiter hetzelfde als input delimiter die we specificeren in de cut with -d optie. Gebruik de optie –output-delimiter = ”delimiter” om het uitvoerscheidingsteken te wijzigen.

$ cut -d " " -f 1,2 state.txt --output-delimiter="%"Andhra%PradeshArunachal%PradeshAssamBiharChhattisgarh

Hier verandert het cut-commando het scheidingsteken (%) in de standaarduitvoer tussen de velden die worden gespecificeerd met de optie -f.

6. –Versie: deze optie wordt gebruikt om de versie van cut weer te geven die momenteel op uw systeem wordt uitgevoerd.

$ cut --versioncut (GNU coreutils) 8.26Packaged by Cygwin (8.26-2)Copyright (C) 2016 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later .This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Toepassingen van cut Command

1. Hoe tail met pipes te gebruiken (|): Het cut-commando kan worden doorgesluisd met vele andere commandos van de unix. In het volgende voorbeeld wordt uitvoer van het cat-commando gegeven als invoer voor het cut-commando met de optie -f om de staatsnamen uit het bestand state.txt in omgekeerde volgorde te sorteren.

$ cat state.txt | cut -d " " -f 1 | sort -rChhattisgarhBiharAssamArunachalAndhra

Het kan ook worden doorgesluisd met een of meer filters voor extra verwerking. Net als in het volgende voorbeeld gebruiken we de opdracht cat, head en cut en waarvan de uitvoer wordt opgeslagen in de bestandsnaam list.txt met behulp van instructie (>).

$ cat state.txt | head -n 3 | cut -d " " -f 1 > list.txt$ cat list.txtAndhraArunachalAssam

Bedankt Saloni Gupta voor het verstrekken van meer voorbeelden.

Artikeltags:

Geef een reactie

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