COLUMN(1)

BEZEICHNUNG
column - Listen in Spalten darstellen

ÜBERSICHT

column [Optionen] [Datei ...]

BESCHREIBUNG

Das Dienstprogramm column formatiert dessen Eingabe in mehreren Spalten. Es unterstützt drei Modi:

füllt Spalten vor Zeilen
    Dies ist der Vorgabemodus (zwecks Abwärtskompatibilität notwendig)

füllt Zeilen vor Spalten
    Dieser Modus wird durch die Option -x, --fillrows aktiviert.

Tabelle erstellen
    In diesem Modus wird die Anzahl der Spalten der Eingabe ermittelt und eine Tabelle erstellt. Dies wird durch die Option -t/--table aktiviert. Die Ausgabe wird im interaktiven Modus an die Terminalbreite angepasst beziehungsweise ist im nicht-interaktiven Modus 80 Zeichen (siehe --output-width für weitere Details). Benutzerdefinierte Formatierungen können mithilfe verschiedener --table-*-Optionen angewendet werden.

Die Eingabe wird aus der angegebenen Datei gelesen oder anderenfalls aus der Standardeingabe. Leere Zeilen werden ignoriert und alle ungültigen Multibyte-Sequenzen werden nach der \x<hex>-Konvention kodiert.

OPTIONEN

Das Argument Spalten für die folgenden --table--Optionen ist eine durch Kommata getrennte Liste benutzerdefinierter Namen, die mit *--table-columns Name1,Name2*,… oder Spaltenindizes, wie sie in der Eingabe erscheinen, beginnend mit 1, oder Namen, die über ein *--table-column-Attribut definiert wurden. Namen und Indizes können gemischt werden. Der spezielle Platzhalter '0' (zum Beispiel -R0) kann verwendet werden, um alle Spalten anzugeben, und '-1' (zum Beispiel -R -1) kann verwendet werden, um die letzte sichtbare Spalte anzugeben. Es ist möglich, Bereiche wie '1-5' zu verwenden, um Spalten über Indizes zu adressieren.

-J, --json
    verwendet das JSON-Format für die Ausgabe der Tabelle. Die Option --table-columns ist erforderlich und die Option --table-name wird empfohlen.

-c, --output-width Breite
    formatiert die Ausgabe auf eine Breite, die hier als Anzahl der Zeichen angegeben wird. Beachten Sie, dass eine Eingabe, die größer als die angegebene Breite ist, standardmäßig nicht gekürzt wird. Die Vorgabe ist die Terminalbreite im interaktiven Modus, und 80 Zeichen im nicht-interaktiven Modus. Die Spaltenüberschriften werden niemals gekürzt.

    Sie können den Platzhalter unlimited (oder 0) verwenden, um die Ausgabebreite explizit nicht zu begrenzen. Dies wird dann empfohlen, wenn die Ausgabe in eine Datei erfolgt.

    (Der ursprüngliche lange Name dieser Option war --columns; dieser Name ist seit Version 2.30 veraltet.)

-d, --table-noheadings
    gibt keine Überschrift aus. Dies ermöglicht Ihnen die Verwendung benutzerdefinierter Spaltennamen in der Befehlszeile, aber blendet die Überschrift aus, wenn die Tabelle ausgegeben wird.

-o, --output-separator Zeichenkette
    gibt den Spaltentrenner für die Tabellenausgabe an (standardmäßig zwei Leerzeichen).

-s, --input-separator, --separator Trennzeichen
    gibt die möglichen Eingabetrennzeichen an (standardmäßig Leerzeichen).

-S, --use-spaces Zahl
    verwendet Leerzeichen anstelle von Tabulatoren, um die Spalten auszurichten, sofern Sie sich nicht im Tabellenmodus befinden. Diese Option gibt die Mindestanzahl von Leerzeichen an, die zwei Spalten trennen.

-t, --table
    ermittelt die Anzahl der Spalten, die die Eingabe enthält und erstellt eine Tabelle. Die Spalten werden standardmäßig durch Leerzeichen oder durch die in der Option --output-separator angegebenen Zeichen getrennt. Die Tabellenausgabe ist für Schöndruck (»Pretty Printing«) geeignet.

--table-colorscheme Name
    Legt das Farbschema fest. Der Standardname ist »column«. Weitere Informationen finden Sie im Abschnitt FARBEN.

-C, --table-column Attribute
    definiert eine Spalte durch eine durch Kommata getrennte Liste von Attributen. Diese Option kann mehrfach angegeben werden; jede Angabe definiert dabei eine Spalte. Die Attribute ersetzen einige der --table--Optionen. Beispielsweise definiert *--table-column name=BLA,right eine Spalte, deren Text rechtsbündig ausgerichtet ist. Diese Option und die Option -N/--table-columns schließen sich gegenseitig aus.

    Die folgenden Attribute werden unterstützt:

    name=Zeichenkette
        Farbbezeichnung

    trunc
        gibt an, dass der Text bei Bedarf gekürzt werden kann. Gleichbedeutend mit --table-truncate. Beachten Sie, dass die Spaltenüberschrift niemals gekürzt wird und die minimale Spaltenbreite darstellt.

    tree
        verwendet diese Spalte für eine Ausgabe in Baumstruktur. Siehe --tree für weitere Details.

    right
        richtet den Text rechtsbündig aus. Gleichbedeutend mit --table-right.

    width=Zahl
        gibt die Spaltenbreite an. Die Breite wird hierbei nur als Hinweis verwendet. Die Breite wird nur dann strikt angewendet, wenn auch das Attribut strictwidth verwendet wird. Die tatsächliche minimale Breite ist die Breite der Spaltenüberschrift.

    strictwidth
        folgt strikt der width=-Angabe, um die Mindestbreite der Spalte festzulegen. Die Spalte kann größer sein, wenn die Ausgabebreite ausreichend Platz bietet.

    noextremes
        ignoriert unüblich große Inhaltsbreiten. Siehe --table-noextreme für weitere Details.

    hidden
        gibt die angegebenen Spalte nicht aus. Siehe --table-hide für weitere Details.

    wrap
        erlaubt bei Bedarf die Verwendung mehrzeiliger Zellen für längere Texte. Beachten Sie, dass die Spaltenüberschrift niemals umgebrochen wird und dadurch die minimale Spaltenbreite bestimmt. Weitere Informationen finden Sie unter --table-wrap.

    wrapnl
        bricht bei Zeilenvorschubzeichen um; Zeilenvorschübe innerhalb von Tabellenfelddaten werden als Zeilenumbrüche betrachtet.

    wrapzero
        bricht bei NUL-Zeichen innerhalb von Tabellenfelddaten um.

    json=Typ
        definiert den Spaltentyp für die JSON-Ausgabe. Unterstützte Typen sind string, number, float, array-string, array-number und boolean.

    color=Name
        definiert die Spaltenfarbe für die Ausgabe im Terminal. Der Name ist ein Farbname (black, blink, blue, bold, brown, cyan, darkgray, gray, green, halfbright, lightblue, lightcyan, lightgray, lightgreen, lightmagenta, lightred, magenta, red, reset, reverse und yellow) oder eine ANSI-Farbsequenz, die durch ein Semikolon getrennt ist, jedoch ohne das Präfix 'ESC[' und das Suffix 'm'. Beispielsweise definiert »37;41« Sequenzen für einen roten Hintergrund und einen weißen Vordergrund. Weitere Informationen finden Sie im Abschnitt FARBEN.

    colorkey=Name
        adressiert Farben wie im Farbschema definiert. Siehe --table-colorscheme.

    headercolor=Name
        wie color=, definiert aber nur die Farbe für die Spaltenüberschrift.

    headercolorkey=Name
        adressiert die Farbe für Überschriften wie im Farbschema definiert. Siehe --table-colorscheme.

-N, --table-columns Namen
    gibt die Spaltennamen in einer durch Kommata getrennten Liste an. Diese Namen werden für die Tabellenüberschriften oder zum Adressieren der Spalte in Optionsargumenten verwendet. Siehe auch --table-column.

-l, --table-columns-limit Anzahl
    gibt die maximale Anzahl der Eingabespalten an. Die letzte Spalte wird alle verbleibenden Zeilendaten enthalten, falls die Begrenzung kleiner ist als die Anzahl der Spalten der Eingabedaten.

-R, --table-right Spalten
    richtet den Text in den angegebenen Spalten rechtsbündig aus.

-T, --table-truncate Spalten
    gibt die Spalten an, in denen es möglich ist, bei Bedarf den Text zu kürzen. Anderenfalls werden sehr lange Tabelleneinträge in mehreren Zeilen ausgegeben.

-E, --table-noextreme Spalten
    gibt die Spalten an, deren Inhalt bei der Berechnung der Spaltenbreite ignoriert werden soll. Diese Option beeinflusst die Breitenberechnung und die Tabellenformatierung, jedoch nicht den angezeigten Text.

    Die Option wird standardmäßig für die letzte sichtbare Spalte aktiv.

-e, --table-header-repeat
    gibt eine Überschrift für jede Seite aus.

-K, --table-header-as-columns
    verwendet die erste Eingabezeile als Tabellenüberschrift. Diese Option schließt sich gegenseitig mit --table-columns und --table-column aus.

-W, --table-wrap Spalten
    gibt die Spalten an, in denen mehrzeilige Zellen für längeren Text verwendet werden können. Standardmäßig wird der Text entsprechend der Spaltenbreite umgebrochen. Verwenden Sie --wrap-separator, um stattdessen an benutzerdefinierten Trennzeichen umzubrechen. Beachten Sie, dass die Spaltenüberschrift niemals umgebrochen wird und dadurch die minimale Spaltenbreite bestimmt.

--wrap-separator Zeichenkette
    verwendet die angegebene Zeichenkette als Trennzeichen für den Textumbruch in Spalten, in denen der Zeilenumbruch aktiviert ist. Das Trennzeichen wird beim Anzeigen des Textes durch Zeilenvorschübe ersetzt. Diese Option erfordert den Tabellenmodus und Spalten mit aktiviertem Zeilenumbruch (siehe --table-wrap). Verwenden Sie beispielsweise |, um den Zeilenumbruch an Pipe-Zeichen innerhalb von Spaltendaten zu ermöglichen.

-H, --table-hide Spalten
    gibt die angegebenen Spalten nicht aus. Der spezielle Platzhalter »-« kann dazu verwendet werden, alle unbenannten Spalten auszublenden (siehe --table-columns).

-O, --table-order Spalten
    gibt die Reihenfolge der Ausgabespalten an.

-n, --table-name Name
    gibt den für die JSON-Ausgabe zu verwendenden Tabellennamen an. Standardmäßig »table«.

-m, --table-maxout
    füllt den gesamten verfügbaren Platz in der Ausgabe.

-L, --keep-empty-lines
    behält Zeilen in der Ausgabe, die nur Leerraum enthalten. Standardmäßig werden leere Zeilen stets ignoriert. Der ursprüngliche Name war --table-empty-lines, wurde aber verworfen, weil dieser den Eindruck erweckte, dass die Option nur im Tabellenmodus gilt.

-r, --tree Spalte
    gibt die Spalte an, die in einer Baumansicht ausgegeben werden soll. Beachten Sie, dass Abhängigkeitsschleifen und andere Anomalien in Kind-Eltern-Relationen stillschweigend ignoriert werden.

-i, --tree-id Spalte
    gibt die Spalte an, die die eindeutige untergeordnete ID jeder Zeile für eine untergeordnete-übergeordnete Beziehung enthält.

-p, --tree-parent Spalte
    gibt die Spalte an, die die übergeordnete ID jeder Zeile für eine untergeordnete Beziehung enthält.

-x, --fillrows
    füllt Zeilen, bevor Spalten gefüllt werden.

--color[=wann]
    stellt die Ausgabe farbig dar. Das optionale Argument wann kann auto, never oder always sein. Falls wann nicht angegeben ist, ist auto die Voreinstellung. Die Farben können deaktiviert werden. Die jeweilige einkompilierte Voreinstellung zeigt Ihnen die Option --help an. Siehe auch den Abschnitt FARBEN.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

FARBEN

Die farbige Darstellung der Ausgabe wird über die Funktionen in terminal-colors.d(5) gesteuert. Die implizierte Einfärbung kann deaktiviert werden, indem Sie folgende (leere) Datei anlegen:

    /etc/terminal-colors.d/column.disable

für den Befehl column oder für alle Befehle mit

    /etc/terminal-colors.d/disable

Seit Version 2.41 wird auch die Umgebungsvariable $NO_COLOR unterstützt, um die farbige Darstellung der Ausgabe zu deaktivieren, sofern sie nicht explizit durch eine Befehlszeilenoption aktiviert wird.

Die benutzerspezifischen Dateien $XDG_CONFIG_HOME/terminal−colors.d oder $HOME/.config/terminal−colors.d setzen die globale Einstellung außer Kraft.

Beachten Sie, dass die Einfärbung der Ausgabe standardmäßig aktiviert sein könnte und in diesem Fall die terminal-colors.d-Verzeichnisse noch nicht zwangsläufig vorhanden sein müssen.

Der vorgegebene Farbschemaname ist »column«, welcher folgendermaßen außer Kraft gesetzt werden kann:

    --table-colorscheme Name

Dann kann Name[.disable|enable|scheme] in /etc/terminal-colors.d/, $XDG_CONFIG_HOME/terminal-colors.d oder $HOME/.config/terminal-colors.d/ verwendet werden.

Der logische Farbname (Schlüssel) im Farbschema kann über die Spalteneigenschaften colorkey= und headercolorkey= angegeben werden. Beispiel:

    echo 'important red'           > ~/.config/terminal-colors.d/cooltable.scheme
    echo 'important-header 37;41' >> ~/.config/terminal-colors.d/cooltable.scheme
    echo -e "a b c\naa bb cc\naaa bbb ccc" | column -t \
            --table-colorscheme=cooltable \
            -C name=AAA,colorkey=important,headercolorkey=important-header \
            -C name=BBB,color=magenta,headercolor=cyan \
            -C name=CCC,color=green

Dadurch wird ein Farbschema mit dem Namen »cooltable« erstellt und die erste Spaltenüberschrift sowie die Daten entsprechend den Schlüsseln des Schemas eingefärbt. Die beiden anderen Spalten werden anhand ihrer Farbnamen eingefärbt.

UMGEBUNGSVARIABLEN

COLUMNS
    dient zur Ermittlung der Größe des Bildschirms, falls keine anderen Informationen verfügbar sind.

LIBSMARTCOLS_DEBUG=all
    aktiviert die Debug-Ausgabe für libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    verwendet sichtbare Auffüllzeichen.

GESCHICHTE

Der Befehl column erschien in 4.3BSD-Reno.

FEHLER

In Version 2.23 änderte sich die Option -s zu »non-greedy«, zum Beispiel:

    printf "a:b:c\n1::3\n" | column -t -s ':'

Alte Ausgabe:

    a  b  c
    1  3

Neue Ausgabe (seit Util-linux 2.23):

    a  b  c
    1     3

In früheren Versionen dieses Werkzeugs wurde angegeben, dass »Zeilen vor Spalten gefüllt werden« und dass die Option -x dies umkehrt. Diese Formulierung reflektierte nicht das tatsächliche Verhalten und wurde daher korrigiert (siehe oben). Andere Implementierungen von column verwenden möglicherweise weiterhin die ältere Dokumentation, aber das Verhalten sollte auf jeden Fall identisch sein.

BEISPIELE

Die Datei /etc/fstab mit einer Überschriftenzeile und rechtsbündig angeordneten Zahlen ausgeben:

    sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE,OPTIONS,FREQ,PASS --table-right FREQ,PASS

Die Datei /etc/fstab ausgeben und unbenannte Spalten verbergen:

    sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE --table-hide -

Einen Baum ausgeben:

    echo -e '1 0 A\n2 1 AA\n3 1 AB\n4 2 AAA\n5 2 AAB' | column --tree-id 1 --tree-parent 2 --tree 3
    1  0  A
    2  1  |-AA
    4  2  | |-AAA
    5  2  | `-AAB
    3  1  `-AB

Tabelle mit benutzerdefiniertem Umbruchtrennzeichen ausgeben:

    echo -e 'Name:Description\nJohn:A|software|developer\nJane:A|data|scientist' | column --table --separator ':' --table-wrap 2 --wrap-separator '|'
    Name  Description
    John  A
          software
          developer
    Jane  A
          data
          scientist

SIEHE AUCH

colrm(1), ls(1), paste(1), sort(1)

FEHLER MELDEN

Nutzen Sie zum Melden von Fehlern das

VERFÜGBARKEIT

Der Befehl column ist Teil des Pakets util-linux, welches aus dem heruntergeladen werden kann.