Linux `cut’-commando is een van de nuttige commando’s om te werken met stringgegevens en bestandsinhoud. Het wordt voornamelijk gebruikt voor het knippen van inhoud uit tabelgegevens of CSV-bestanden. Elke regel van het bestand kan worden opgedeeld en de vereiste gegevens kunnen gemakkelijk worden opgehaald met behulp van de opdracht `knippen`. Het kan ook worden gebruikt om tekst op scheidingsteken of teken- of bytepositie te knippen. Deze opdracht heeft veel opties om op verschillende manieren gegevens uit de tekst of het bestand te knippen. Hoe het cut-commando kan worden gebruikt met verschillende opties wordt in deze tutorial getoond aan de hand van verschillende voorbeelden.
Syntaxis:
OPTION waarde is verplicht om te gebruiken voor `cut` commando en FILE name is optioneel. Als u de bestandsnaam in de opdracht weglaat, worden gegevens uit de standaardinvoer gebruikt. Maar als u de OPTION-waarde weglaat in het cut-commando, zal het de fout genereren.
Opties:
Optietag | Beschrijving |
-b of –byte = LIST | Selecteer de specifieke bytes. |
-c of –character = LIST | Selecteer de specifieke tekens. |
-d of –delimiter = DELIM | Selecteer DELIM-waarde als scheidingsteken. Het standaard scheidingsteken is TAB. |
-f of –fields = LIST | Selecteer de specifieke velden |
–complement | Gebruik als aanvulling de uitvoer |
-s of –alleen gescheiden | Laat de regels die geen scheidingsteken bevatten. |
–output-delimiter = STRING | Gebruik de STRING-waarde als scheidingsteken voor de uitvoer. |
-z of –zero-terminated | Gebruik NULL als scheidingsteken voor regels. |
Voorbeeld-1 : Cut bytes
De volgende cut-opdracht zal de standaard invoergegevens opsplitsen op basis van de gedefinieerde bytes. Hier worden 3,4,5 en 6 gedefinieerd als bytes. De output wordt gegenereerd op basis van de standaard input. Druk op CTRL + D om het commando af te sluiten.
Output:
Hier is input “Ik hou van programmeren” en de output is “like” gebaseerd op de genoemde bytes.
Maak een tekstbestand aan met de naam “productlist.txt” met de volgende inhoud voor het toepassen van de opdracht “cut”. Gebruik TAB om de velden van de bestandsinhoud te scheiden.
01 Pen $ 2
02 Potlood $ 1.5
03 Gum $ 1
Voer de volgende opdracht uit om alleen de product-ID. Hier worden bytes gegeven als een bereik, ‘1-2 ′ om de gegevens te knippen.
Uitvoer:
Voorbeeld-2: Knippen door tekens
U kunt dezelfde uitvoer genereren door de optie -c te gebruiken, die worden getoond in de vorige voorbeelden. Er is dus geen specifiek verschil tussen de uitvoer van -b en – c opties van de cut-opdracht. Voer de volgende opdracht uit om het gebruik van de optie -c te tonen. Hier wordt 4- gebruikt als een optiewaarde die van positie 4 naar alle resterende tekens van elke regel wordt geknipt. U kunt ook het minteken voor de waarde gebruiken, zoals -4, dan wordt het vanaf het begin teruggebracht naar 4 posities.
Uitvoer:
De eerste drie tekens worden weggelaten in de uitvoer.
Voorbeeld-3: knippen door scheidingsteken en velden
Maak een CSV-bestand met de naam ‘students.csv’ met de volgende inhoud om het gebruik van scheidingsteken te laten zien.
1002, Micheal, EEE, 3,99
1003, Asraful Haque, BBA, 3.85
1004, Momotaj Khan, Engels, 3.20
Voer het volgende commando uit om de naam van de leerling en CGPA af te drukken vanuit het bestand students.csv. Volgens de inhoud van het bestand bevatten de 2e en 4e velden de naam van de student en CGPA. Er worden dus twee opties gebruikt in deze opdracht om de uitvoer te tonen. Een daarvan is het scheidingsteken, -d, wat hier ‘,’ is en een ander is de veldoptie -f.
Uitvoer:
Als je wilt druk twee of meer opeenvolgende kolommen van een tabelgegevens of CSV-bestand af, dan kunt u de velden als een bereik definiëren. Het bereik van de veldwaarde wordt gebruikt in de volgende opdracht. Hier worden alle velden van 2 tot 4 afgedrukt als uitvoer.
Uitvoer:
Voorbeeld-4: Cut by complement
– complement-optie wordt gebruikt om de tegenovergestelde output van het commando te genereren . In de volgende opdracht wordt het bestand productlist.txt gebruikt dat bij het eerste voorbeeld is gemaakt. Hier zal -f optie het eerste veld knippen en de –- complement optie zal alle andere velden van het bestand afdrukken door het eerste veld weg te laten.
$ cut –complement -f 1 productlist.txt
Uitvoer:
Voorbeeld-5: Cut by output-delimiter
Deze optie wordt gebruikt om output te genereren door een bepaald scheidingsteken te gebruiken. Het eerder gemaakte students.csv-bestand wordt gebruikt in de volgende opdracht. ‘,’ Is het standaardscheidingsteken van elk CSV-bestand. De volgende opdracht gebruikt ‘:’ als uitvoerscheidingstekenwaarde.
$ cut -d “,” -f 1- 3 students.csv –output-delimiter = “:”
Uitvoer:
Na het uitvoeren van de opdracht wordt het invoerscheidingsteken ‘,’ vervangen door het uitvoerscheidingsteken ‘:’ en de eerste drie velden worden afgedrukt door ‘:’ te scheiden.
Voorbeeld-6: Cut gebruiken met pipe commando
Cut commando kan input krijgen van elk bestand of van de gebruikersinvoer. Maar invoertekst kan naar het cut-commando worden gestuurd met behulp van de pipe. Het volgende commando toont het gebruik van het cut-commando met de pipe. Hier zal het echo-commando de invoertekst zijn om het commando te knippen en het cut-commando zal de velden 2 en 3 knippen op basis van het scheidingsteken.
Uitvoer:
Voorbeeld -7: Bewaar de uitvoer van de cut-opdracht in een bestand
Als je wilt, kun je de uitvoer van de cut-opdracht ook in een willekeurig tekstbestand opslaan. Het volgende commando neemt de inhoud van het students.csv-bestand als invoer, knipt het 2e veld op basis van het scheidingsteken en drukt de uitvoer af in een tekstbestand met de naam ‘student_names.txt’.
Uitvoer:
Conclusie:
De meest voorkomende toepassingen van het cut-commando worden in deze tutorial uitgelegd door het bovenstaande te gebruiken voorbeelden. Hoop, het gebruik van het cut-commando zal voor de lezers worden gewist na het oefenen van de bovenstaande voorbeelden.