Manchmal möchten Sie bei der Arbeit an der Befehlszeile unter Linux den Inhalt einer Datei im Spaltenformat anzeigen. Sie werden froh sein zu wissen, dass es in Linux ein Befehlszeilenprogramm gibt, mit dem Sie dies tun können. Der Name des Werkzeugs ist Spalte, und wir werden die Grundlagen dieses Befehls anhand einiger leicht verständlicher Beispiele besprechen.
Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.
Linux-Spaltenbefehl
Mit dem Spaltenbefehl in Linux können Sie Spaltenlisten erstellen. Es folgt die Syntax:
column [-entx] [-c columns] [-s sep] [file ...]
Und so definiert es die Manpage des Tools:
The column utility formats its input into multiple columns. Rows are
filled before columns. Input is taken from file operands, or, by
default, from the standard input.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Spaltenbefehl funktioniert.
Q1. Wie verwende ich den Spaltenbefehl?
Die grundlegende Verwendung ist ziemlich einfach. Angenommen, Sie haben eine Datei mit dem Namen „test.txt“, die die folgenden Informationen enthält:
1
2
3
4
5
6
7
8
9
10
Um nun den Inhalt dieser Datei zu spalten, verwenden Sie den Spaltenbefehl wie folgt:
column test.txt
Und Sie erhalten eine Ausgabe wie diese:
1 2 3 4 5 6 7 8 9 10
Q2. Wie kann man eine durch Trennzeichen getrennte Ausgabe spalten?
Angenommen, eine Datei enthält den folgenden Inhalt:
No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finaland|Y
10|Ireland|Y
Führen Sie nun den Spaltenbefehl wie folgt aus:
column test.txt -t -s "|"
Und hier ist die erzeugte Ausgabe:
No. Country Yes/No
01 India Y
02 US Y
03 Australia Y
04 China N
05 Russia Y
06 Japan Y
07 Singpaore Y
08 South Korea N
09 Finaland Y
10 Ireland Y
Zu Ihrer Information, hier ist, wie die Spaltenbefehl-Manpage die Befehlszeilenoptionen -t und -s erklärt:
-s Specify a set of characters to be used to delimit columns for the
-t option.
-t Determine the number of columns the input contains and create a
table. Columns are delimited with whitespace, by default, or
with the characters supplied using the -s option. Useful for
pretty-printing displays.
Q3. Was ist mit Fällen mit mehreren Trennzeichen?
Im vorherigen Beispiel haben Sie gesehen, dass der ursprüngliche Inhalt Pipe '|' enthielt. als Trennzeichen. Der Spaltenbefehl verwendete also dieses Trennzeichen, um eine Ausgabe im Spaltenformat zu erzeugen. Aber was wäre, wenn in einigen Einträgen zwei Pipes wären? Siehe zum Beispiel die erste Zeile hier:
No.||Country||Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singpaore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y
Standardmäßig führt der Spaltenbefehl mehrere benachbarte Trennzeichen zu einem einzigen Trennzeichen zusammen. Wenn Sie möchten, können Sie dieses Verhalten jedoch mit der Befehlszeilenoption -n deaktivieren. In diesem Fall würde der Spaltenbefehl also zu:
column -n test.txt -t -s "|"
Q4. Wie geht der Spaltenbefehl mit leeren Zeilen um?
Standardmäßig werden leere Zeilen vom Spaltenbefehl ignoriert. Wenn Sie möchten, können Sie dieses Verhalten jedoch mit der Befehlszeilenoption -e unterdrücken.
Beispiel:Dateiinhaltszeile so:
No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y
04|China|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y
Wird herauskommen wie:
No. Country Yes/No
01 India Y
02 US Y
03 Australia Y
04 China N
05 Russia Y
06 Japan Y
07 Singapore Y
08 South Korea N
09 Finland Y
10 Ireland Y
mit dem folgenden Befehl:
column -e test.txt -t -s "|"
Schlussfolgerung
Abhängig von der Art Ihrer Arbeit auf der Linux-Befehlszeile kann Ihnen der Spaltenbefehl eine große Hilfe sein. In diesem Tutorial haben wir die meisten Optionen besprochen, die das Tool bietet. Weitere Informationen finden Sie auf der Manpage.