10 Praktische voorbeelden van Linux Cut-commando’s om bestandkolommen te selecteren
Linux-commando-cut wordt gebruikt voor tekstverwerking. U kunt dit commando gebruiken om een gedeelte van de tekst uit een bestand te extraheren door kolommen te selecteren.
Deze tutorial geeft enkele praktische voorbeelden van een cut-commando dat u kunt gebruiken in uw dagelijkse commandoregelactiviteiten.
Voor het grootste deel van het voorbeeld gebruiken we het volgende testbestand.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selecteer kolom met tekens
Gebruik de optie -c om alleen een gewenste kolom uit een bestand te extraheren. Het volgende voorbeeld toont het tweede teken van elke regel van een bestand test.txt
$ cut -c2 test.txtaps
Zoals hierboven te zien is, zijn de tekens a, p, s het tweede teken van elke regel van het test.txt-bestand.
Selecteer kolom met tekens met bereik
Een reeks tekens kan ook uit een bestand worden geëxtraheerd door de begin- en eindpositie op te geven die wordt gescheiden door -. In het volgende voorbeeld worden de eerste 3 tekens van elke regel geëxtraheerd uit een bestand met de naam test.txt
$ cut -c1-3 test.txtcatcpls
Selecteer een kolom met tekens met behulp van de begin- of eindpositie
Startpositie of eindpositie kan worden doorgegeven aan het cut-commando met de optie -c.
Het volgende specificeert alleen de startpositie vóór de ‘-‘. In dit voorbeeld wordt het derde teken tot het einde van elke regel uit het test.txt-bestand geëxtraheerd.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Het volgende specificeert alleen de eindpositie na de ‘-‘. Dit voorbeeld haalt 8 tekens vanaf het begin van elke regel uit het test.txt-bestand.
$ cut -c-8 test.txtcat commcp commals comma
De hele regel wordt afgedrukt als u geen nummer opgeeft voor of na de ‘-‘ zoals hieronder getoond.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Selecteer een specifiek veld uit een bestand
In plaats van x aantal tekens, als u een heel veld wilt extraheren, kunt u optie -f en -d combineren. De optie -f specificeert welk veld u wilt extraheren, en de optie -d specificeert wat het veldscheidingsteken is dat wordt gebruikt in het invoerbestand.
Het volgende voorbeeld toont alleen het eerste veld van elke regel uit / etc / passwd-bestand met behulp van het veldscheidingsteken: (dubbele punt). In dit geval is het eerste veld de gebruikersnaam. Het bestand
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Selecteer meerdere velden uit een bestand
Je kunt ook meer dan één veld extraheren uit een bestand of stdout. Onderstaand voorbeeld toont de gebruikersnaam en homedirectory van gebruikers met de login-shell als “/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Om het bereik van velden weer te geven, specificeert u het startveld en eindveld zoals hieronder getoond. In dit voorbeeld selecteren we veld 1 tot en met 4, 6 en 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Selecteer alleen velden als een regel het scheidingsteken bevat
In ons / etc / passwd voorbeeld, als je een ander scheidingsteken doorgeeft dan: (dubbele punt), zal cut gewoon de hele regel weergeven.
In het volgende voorbeeld geven we ‘ ve specificeerde het scheidingsteken als | (pipe), en het cut-commando geeft eenvoudig de hele regel weer, zelfs als het geen regel vindt die | (pipe) als scheidingsteken heeft.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Maar het is mogelijk om alleen de regels te filteren en weer te geven die het opgegeven scheidingsteken bevatten met de optie -s.
In het volgende voorbeeld wordt geen uitvoer weergegeven, omdat het cut-commando dat niet deed vind geen regels met | (pipe) als scheidingsteken in het bestand / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Selecteer alle velden behalve de gespecificeerde velden
Gebruik optie –complement om de lijst met keuzevelden aan te vullen.
Het volgende voorbeeld wordt weergegeven alle velden uit het / etc / passwd-bestand behalve veld 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Wijzig uitvoerscheidingsteken voor weergave
Standaard is het uitvoerscheidingsteken hetzelfde als invoer scheidingsteken dat we specificeren in de cut -d optie.
Om het uitvoer scheidingsteken te veranderen, gebruik de optie –output-delimiter zoals hieronder getoond. In dit voorbeeld is het invoerscheidingsteken: (dubbele punt), maar het uitvoerscheidingsteken is # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Wijzig uitvoerscheidingsteken in nieuwe regel
In dit voorbeeld wordt elk veld van de uitvoer van het snijcommando op een aparte regel weergegeven. We gebruikten nog steeds –output-delimiter, maar de waarde is $ ‘\ n’ wat aangeeft dat we een nieuwe regel moeten toevoegen als het output delimiter.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combineren Cut with Other Unix Command Output
De power of cut-opdracht kan worden gerealiseerd wanneer je het combineert met de standaard van een ander Unix-commando.
Als je eenmaal het basisgebruik van cut-commando onder de knie hebt die we hierboven hebben uitgelegd, kunt u verstandig het cut-commando gebruiken om veel van uw tekstmanipulatie-eisen op te lossen.
Het volgende voorbeeld geeft aan hoe u alleen nuttige informatie kunt extraheren uit de ps-commando-uitvoer. We hebben ook laten zien hoe we de uitvoer van de ps-opdracht hebben gefilterd met grep en sed voordat de laatste uitvoer werd gegeven aan de opdracht cut.Hier hebben we de cut-optie -d en -f gebruikt die we in de bovenstaande voorbeelden hebben uitgelegd.
Als je dit artikel leuk vond, zou je ook leuk kunnen vinden ..
|
|