Linux colrm Befehl für Anfänger (mit Beispielen)

Wenn Sie hauptsächlich auf der Linux-Befehlszeile arbeiten, ist die Textbearbeitung wahrscheinlich eine der häufigsten Aufgaben, an denen Sie sich beteiligen können. Ob es sich nun um das Bearbeiten von Skripten, Quellcode-Dateien, Konfigurationsdateien oder einer normalen Textdatei handelt, es gibt mehrere Textbearbeitungswerkzeuge, die Ihnen bei Ihrer Arbeit helfen.

Ein solches Werkzeug ist colrm, das wir hier anhand einiger leicht verständlicher Beispiele diskutieren werden. Aber bevor wir damit beginnen, ist es erwähnenswert, dass alle Beispiele hier auf einer Ubuntu 18.04 LTS Maschine getestet wurden.

Linux colrm Befehl

Mit dem Befehl colrm unter Linux können Sie ausgewählte Spalten aus einer Datei entfernen. Folgendes ist seine Syntax:

colrm [start [stop]]

Und so beschreibt die Man Page colrm, was das Tool macht:

     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.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl colrm funktioniert.

Q1. Wie verwendet man den Befehl colrm?

Wie bereits erwähnt, können Sie mit dem Befehl colrm Spalten entfernen. Sie müssen also nur einen numerischen Wert angeben, und die Spalte, die diesem Wert entspricht, sowie alle nachfolgenden Spalten werden in der Ausgabe gelöscht.

Hier ist zum Beispiel eine Textdatei ‚file1.txt‘, die den folgenden Text enthält:

abcdefgh

Für colrm stellt jedes Alphabet eine Spalte dar. Angenommen, die Anforderung besteht darin, Spalte 6 und alle susequent Spalten zu löschen, dann kann dies mit:

colrm 6 < file1.txt

Nachfolgend ist die Ausgabe, die der obige Befehl erzeugen wird:

Verwendung von colrm-Befehlen

Man sieht also, dass die Spalten 6, ,7 und 8 entlastet wurden.

Q2. Wie kann man nur eine einzelne Spalte entfernen?

In diesem Fall müssen Sie sowohl Start- als auch Stoppspalten angeben. Angenommen, die Anforderung besteht darin, nur die Spalte 6 zu löschen, dann müssen Sie dafür den Befehl colrm wie folgt ausführen:

colrm 6 6 < file1.txt

Hier ist die Ausgabe dieses Befehls, die auf meinem System erzeugt wurde:

Wie man nur eine einzelne Spalte entfernt

Sie sehen also, dass nur die 6. Spalte gelöscht wurde. Selbstverständlich können Sie auf diese Weise einen Bereich von Spalten löschen. Zum Beispiel:

colrm 2 6 < file1.txt

Mit diesem Befehl werden Spalten im Bereich von 2 bis 6 gelöscht. Es lohnt sich zu beachten, dass die Spaltennummerierung bei 1 beginnt und nicht bei Null.

Q3. Wie behandelt colrm Backspaces und Tabs?

Die Manualseite des Tools erklärt dies sehr anschaulich. Hier ist der entsprechende Auszug:

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

Beachten Sie auch, dass colrm bei Erfolg 0 zurückgibt und >0, wenn ein Fehler auftritt.

Q4. Wie lässt man Colrm die Eingabe von stdin akzeptieren?

Das ist sehr einfach. Sie müssen nichts extra tun – geben Sie einfach die Spaltennummer (oder den Bereich) in der Eingabe an.

Hier ist ein Beispiel:

Wie man Colrm dazu bringt, Eingaben von stdin zu akzeptieren.

Der Befehl wartet also darauf, dass Sie die Eingabe zur Laufzeit vornehmen, und erzeugt dann nach Drücken der Eingabetaste eine Ausgabe.

Fazit

Wie Sie wahrscheinlich zustimmen werden, ist der Befehl colrm ein nützliches kleines Dienstprogramm, wenn es darum geht, Spalten aus einer Textdatei zu entfernen. Hier, in diesem Tutorial, haben wir fast alle seine Funktionen diskutiert. Sobald du damit fertig bist, diese zu üben, kannst du mehr über den Befehl erfahren, indem du zu seiner Manpage gehst.

Das könnte Dich auch interessieren …