Linux colrm Command Tutorial voor Beginners (met Voorbeelden)

Als je hoofdzakelijk op de Linux commando-regel werkt, is tekstbewerking waarschijnlijk een van de meest voorkomende taken waar je bij betrokken kunt zijn. Of het nu gaat om het bewerken van scripts, broncode bestanden, configuratie bestanden, of een gewoon tekstbestand, er zijn verschillende tekstbewerkingsgereedschappen die je bij je werk helpen.

Eén zo’n gereedschap is colrm, dat we hier zullen bespreken aan de hand van enkele gemakkelijk te begrijpen voorbeelden. Maar voor we daarmee beginnen, is het de moeite waard te vermelden dat alle voorbeelden hier getest zijn op een Ubuntu 18.04 LTS machine.

Linux colrm commando

Met het colrm commando in Linux kun je geselecteerde kolommen uit een bestand verwijderen. Hierna volgt de syntaxis ervan:

colrm [start [stop]]

En hier is hoe de colrm man pagina beschrijft wat het gereedschap doet:

     The colrm utility removes selected columns from the lines of a file.  A
     column is defined as a single character in a line.  Input is read from
     the standard input.  Output is written to the standard output.

     If only the start column is specified, columns numbered less than the
     start column will be written.  If both start and stop columns are speci?
     fied, columns numbered less than the start column or greater than the
     stop column will be written.  Column numbering starts with one, not zero.

Hieronder volgen enkele vraag-antwoord-achtige voorbeelden die je een goed idee moeten geven over hoe het colrm commando werkt.

Q1. Hoe gebruik je het colrm commando?

Zoals reeds gezegd kun je met het colrm commando kolommen verwijderen. Je hoeft dus alleen maar een numerieke waarde op te geven, en de kolom die met die waarde correspondeert, en alle volgende kolommen worden in de uitvoer ge-axed.

Bijvoorbeeld, hier is een tekstbestand ‘file1.txt’ dat de volgende tekst bevat:

abcdefgh

Voor colrm staat elk alfabet voor een kolom. Stel nu dus dat de bedoeling is kolom 6 en alle daaropvolgende kolommen te wissen, dan kan dat met:

colrm 6 < file1.txt

Hieronder volgt de uitvoer die het bovenstaande commando oplevert:

gebruik van het colrm commando

Je ziet dus dat de kolommen 6, ,7 en 8 werden bijgepunt.

Q2. Hoe verwijder je slechts een enkele kolom?

In dat geval moet je zowel start- als stopkolommen opgeven. Stel dat de eis is om alleen kolom nummer 6 te verwijderen, dan moet je daarvoor het colrm commando op de volgende manier uitvoeren:

colrm 6 6 < file1.txt

Hier is de uitvoer die dit commando op mijn systeem opleverde:

Hoe verwijder je slechts een enkele kolom

Je ziet dus dat alleen de 6e kolom werd gewist. Onnodig te zeggen dat je op deze manier ook een reeks kolommen kunt wissen. Bijvoorbeeld:

colrm 2 6 < file1.txt

Dit commando verwijdert kolommen van 2 tot 6. Het is goed te bedenken dat de kolomnummering begint bij 1, niet bij nul.

Q3. Hoe gaat colrm om met backspaces en tabs?

De man pagina van het gereedschap legt dit vrij duidelijk uit. Hier is het relevante fragment:

     Tab characters increment the column count to the next multiple of eight.
     Backspace characters decrement the column count by one.

Bedenk ook dat colrm 0 teruggeeft bij succes, en >0 als er een fout optreedt.

Q4. Hoe kun je colrm input van stdin laten accepteren?

Dat is heel eenvoudig. Je hoeft niets extra’s te doen – geef gewoon kolomnummer (of bereik) op in de invoer.

Hier zie je een voorbeeld:

Hoe colrm input van stdin te laten accepteren

Het commando wacht dus tot je de invoer bij de run geeft, en produceert dan otutput nadat je op de entertoets drukt.

Conclusie

Zoals je waarschijnlijk wel zult beamen, is het colrm commando een handig hulpprogramma als het gaat om het verwijderen van kolommen uit een tekstbestand. Hier, in deze zelfstudie, hebben we bijna al zijn functies besproken. Als je klaar bent met deze te oefenen, kun je meer over het commando te weten komen door naar zijn man pagina te gaan.