Linux biedt cut
commando voor het verwijderen van secties van elke uitvoerregel in bash. cut
Commando biedt een mechanisme om kolom/tekst uit een bestand of standaarduitvoer te filteren. Gedetailleerde voorbeelden zijn hieronder te vinden., We hebben het volgende tekstbestand met de naam fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
select column
Cut Commando biedt de mogelijkheid om een opgegeven kolom te selecteren op basis van karakternummer voor alle rijen. Hier printen we alle rijen 3 tekens regel voor regel naar de console. Dit zal slechts één teken afdrukken.,
$ cut -c3 fruits.txt
Selecteer kolom voor Tekenbereik
in het vorige voorbeeld hebben we een enkel teken afgedrukt naar de terminal. We kunnen ook meerdere tekens naar de console afdrukken door het tekenbereik op te geven zoals hieronder. We kunnen zien dat de karakterindex begint bij 1.,
$ cut -c1-6 fruits.txt
Selecteer kolom met startpositie
positie tot einde.
$ cut -c3- fruits.txt
Selecteer kolom met eindpositie
We kunnen het bereik vanaf het begin afdrukken naar de opgegeven positie alleen opgeven eindpositie., Dit zal beginpositie aannemen als 1
$ cut -c-3 fruits.txt
Selecteer één veld
het veld is enkele een deel van de tekst afgebakend met specifieke tekens zoals spatie, tab, dubbele komma, enz. We kunnen tekst selecteren met veldnummers. Standaard is het scheidingsteken van het veld tab. Onze tekst is al voorzien tabblad voor afbakening. In dit voorbeeld selecteren we 3. veld.,
$ cut -f3 fruits.txt
Selecteer meerdere velden
zoals we doen in tekens kunnen we ook veldbereik opgeven. We zullen fruit namen en telt selecteren met het volgende commando.
$ cut -f1-2 fruits.txt
het volgende voorbeeld selecteert meer dan één veld één voor één zonder bereiken.,
$ cut -f1,2,3 fruits.txt
Laatste Veld
Een van de meest populaire bestemmingen van de cut
afdrukken laatste veld. Het probleem is dat het aantal velden kan veranderen volgens de tekst en we kunnen het laatste veld niet alleen specificeren met cut
Commando. Het volgende voorbeeld gebruikt rev
commando om het laatste veld te verkrijgen.,
$ cat fruits.txt | rev | cut -f1 | rev
Selecteer Velden Zijn Opgegeven Tekens
standaard cut
hebben niet de mogelijkheid uitsluiten lijnen volgens de tekens, maar grep
kunnen gemakkelijk worden gebruikt voor de uitvoering van deze functie., We zullen alleen rijen selecteren met app
$ grep "app" fruits.txt | cut -f1-2
selecteer velden met uitzondering van opgegeven tekens
we kunnen het vorige voorbeeld omkeren en ongewenste Rijen verwijderen. We zullen regels verwijderen bevat app
en dan kolommen afdrukken van 1 tot 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Specificeer scheidingsteken
het scheidingsteken wordt gebruikt om te delen fields. Standaard wordt het tabblad gebruikt als scheidingsteken. Maar het kan worden gespecificeerd met -d
optie zoals hieronder. In navolging van het voorbeeld gebruiken we :
als scheidingsteken omdat het passwd
bestand het gebruikt. Dan willen we alleen Gebruikersnamen tonen die zich in veld 1 bevinden.,
$ cut -d: -f1 /etc/passwd
Print behalve velden
zoals we eerder zien kunnen velden ook als bereiken worden afgedrukt. We kunnen ook printen door velden uit te sluiten. Dit zal alle hernoemings velden afdrukken. In navolging van het voorbeeld kunnen we alle velden behalve 2 willen afdrukken.
scheidingsteken wijzigen
tekst kan standaard scheidingstekens hebben. In sommige situaties willen we het scheidingsteken wijzigen tijdens het afdrukken naar de console., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt