COLUMN(1) Polecenia użytkownika COLUMN(1)

column - tworzy kolumny z list

column [opcje] [plik ...]

Narzędzie column formatuje swoje wejście tworząc kilka kolumn. Obsługuje trzy tryby:

wypełnia kolumny przed wierszami

Jest to domyślny tryb (wymagany ze względu na kompatybilność wsteczną).

wypełnia wiersze przed kolumnami

Ten tryb włącza się opcją -x, --fillrows.

tworzy tabelę

Ustala liczbę kolumn jaką zawiera wejście i tworzy tabelę. Ten tryb włącza się opcją -t/--table. Wyjście jest wyrównywane do szerokości terminala w trybie interaktywnym i do 80 kolumn w trybie nieinteraktywnym (więcej szczegółów w opisie opcji --output-width). Tabelę można dodatkowo sformatować poszczególnymi opcjami --table-*.

Wejście jest przyjmowane z pliku lub ze standardowego wejścia. Puste wiersze są ignorowane, a wszelkie nieprawidłowe sekwencje wielobajtowe są kodowane za pomocą konwencji x<hex> (liczby szesnastkowej).

Argument kolumny w przypadku poniższych opcji --table-* jest listą nadanych przez użytkownika nazw kolumn, rozdzielonych przecinkiem, definiowanych jako --table-columns nazwa1,nazwa2,..., lub ich indeksów, w kolejności w jakiej pojawiają się na wejściu, poczynając od 1, albo też nazw, definiowanych przez atrybut --table-column. Można mieszać nazwy i indeksy. Aby podać wszystkie kolumny można skorzystać ze specjalnego symbolu zastępczego "0" (np. -R0), a aby określić ostatnią widoczną kolumnę, można skorzystać z symbolu "-1" (np. -R -1). Przy adresowaniu kolumn indeksami, można korzystać z zakresów takich jak "1-5".

-J, --json

Używa formatu wyjściowego JSON do wypisania tabeli. Wymagana jest opcja --table-columns, a opcja --table-name jest zalecana.

-c, --output-width szerokość

Wyjście jest formatowane do szerokości określonej liczbą znaków. Proszę zauważyć, że wejście dłuższe niż szerokość nie jest domyślnie przycinane. Domyślna jest szerokość terminala w trybie interaktywnym lub 80 kolumn w trybie nieinteraktywnym. Nagłówki kolumn nigdy nie są przycinane.

Aby zapobiec ograniczaniu szerokości wyjścia, można użyć symbolu zastępczego unlimited (lub 0). Zaleca się takie postępowanie przy przekierowywaniu wyjścia do pliku.

(Pierwotna długa nazwa tej opcji brzmiała --columns; nazwa ta jest przestarzała od wersji v2.30).

-d, --table-noheadings

Pomija wypisywanie nagłówka. Opcja pozwala na korzystanie z nazw nadanych przez użytkownika w wierszu poleceń, ale ukrywa nagłówek przy wypisywaniu tabeli.

-o, --output-separator łańcuch

Separator kolumn w wyjściu tabeli (domyślnie to dwie spacje).

-s, --input-separator, --separator separatory

Możliwe separatory pozycji wejściowych (domyślnie to spacja).

-S, --use-spaces liczba

W trybie innym niż tabeli, korzysta ze spacji zamiast tabulatorów do wyrównania kolumn. Opcja określa minimalną liczbę spacji, która oddziela dwie kolumny.

-t, --table

Ustala liczbę kolumn jaką zawiera wejście i tworzy tabelę. Kolumny są domyślnie rozdzielone spacją lub znakami podanymi opcją --output-separator. Wyjście tabelaryczne jest przydatne do ładnego drukowania (pretty-printing).

--table-colorscheme nazwa

Określa schemat kolorów. Domyślną nazwą jest "column". Więcej szczegółów w rozdziale KOLORY.

-C, --table-column atrybuty

Definiuje kolumnę z jej listą atrybutów (separatorem jest przecinek). Opcji można użyć wielokrotnie, każda zdefiniuje pojedynczą kolumnę. Atrybuty zastępują niektóre z opcji --table-: np. *--table-column name=FOO,right definiuje kolumnę, której tekst jest wyrównywany do prawej strony. Opcja wzajemnie wyklucza się z -N/--table-columns.

Obsługiwane są następujące atrybuty:

name=łańcuch

Nazwa kolumny.

trunc

Przycina tekst kolumny, jeśli to konieczne. Równoważne --table-truncate. Proszę zauważyć, że nagłówek kolumny nigdy nie jest przycinany, stanowiąc minimalną szerokość kolumny

tree

Używa tę kolumnę w trybie drzewiastym. Więcej szczegółów w opisie opcji --tree.

right

Wyrównuje tekst do prawej strony. Równoważne --table-right.

width=liczba

Szerokość kolumny. Jest to tylko wskazówka. Aby ją wymusić, należy zdefiniować również atrybut strictwidth. Faktyczną minimalną szerokość określa szerokość nagłówka kolumny.

strictwidth

Ściśle przestrzega width= do określenia minimalnego rozmiaru kolumny. Kolumna może być szersza, jeśli w wyniku jest na to wystarczająco dużo miejsca.

noextremes

Ignoruje nadzwyczaj długą szerokość zawartości. Więcej szczegółów w opisie opcji --table-noextreme.

hidden

Nie wypisuje kolumny. Więcej szczegółów w opisie opcji --table-hide.

wrap

Pozwala na korzystanie z wielowierszowej komórki w przypadku długiego tekstu, jeśli to konieczne. Proszę zauważyć, że nagłówek nigdy nie jest zawijany i określa minimalną szerokość kolumny. Więcej szczegółów w opisie opcji --table-wrap.

wrapnl

Zawija na znakach nowego wiersza; znaki nowego wiersza w komórkach danych są traktowane jako przełamania wierszy.

wrapzero

Przełamuje na znakach zerowych (NUL) w komórkach danych.

json=typ

Definiuje typ kolumny w wyjściu JSON. Obsługiwanymi typami są: string (łańcuch), number (liczba), float (liczba zmiennoprzecinkowa), array-string i array-number (tablice) oraz boolean (wartość logiczna).

color=nazwa

Definiuje kolor kolumny w wyjściu na terminalu. Nazwa jest nazwą koloru (black, blink, blue, bold, brown, cyan, darkgray, gray, green, halfbright, lightblue, lightcyan, lightgray, lightgreen, lightmagenta, lightred, magenta, red, reset, reverse i yellow) lub liczbą/liczbami sekwencji koloru ANSI, rozdzielonych średnikiem, ale bez przedrostka "ESC[" i przyrostka "m". Na przykład "37;41" definiuje sekwencję z czerwonym tłem i białym tekstem. Więcej szczegółów w rozdziale KOLORY.

colorkey=nazwa

Adresuje kolor zdefiniowany w schemacie kolorów. Zob. --table-colorscheme.

headercolor=nazwa

Podobnie jak color=, lecz definiuje tylko kolor nagłówka.

headercolorkey=nazwa

Adresuje kolor nagłówka zdefiniowany w schemacie kolorów. Zob. --table-colorscheme.

-N, --table-columns nazwy

Określa nazwy kolumn za pomocą listy (separatorem jest przecinek). Nazwy są stosowane w nagłówku tabeli oraz do wskazywania kolumn w argumentach opcji. Zob. też --table-column.

-l, --table-columns-limit liczba

Określa maksymalną liczbę kolumn wejściowych. Ostatnia kolumna będzie zawierała wszystkie pozostałe dane, jeśli limit jest mniejszy niż liczba kolumn w danych wejściowych.

-R, --table-right kolumny

Wyrównuje tekst do prawej strony w podanych kolumnach.

-T, --table-truncate kolumny

Określa kolumny, w których tekst może zostać przycięty gdy to konieczne, w przeciwnym przypadku bardzo długie wpisy w tabeli mogą zajmować wiele wierszy.

-E, --table-noextreme kolumny

Określa kolumny, w których zawartość dłuższa niż przeciętna może być zignorowana przy obliczaniu szerokości kolumny. Opcja ta wpływa na obliczanie szerokości i formatowania tabeli, natomiast nie ma wpływu na wypisywany tekst.

Opcja ta domyślnie jest aktywowana wobec ostatniej widocznej kolumny.

-e, --table-header-repeat

Wypisuje wiersz nagłówka na każdej stronie.

-K, --table-header-as-columns

Używa pierwszego wiersza wejścia jako nagłówka tabeli. Opcja wyklucza się z opcjami --table-columns i --table-column.

-W, --table-wrap kolumny

Określa kolumny, w których przy dłuższych tekstach mogą być stosowane komórki wielowierszowe. Domyślnie tekst jest zawijany zgodnie z szerokością kolumny. Za pomocą opcji --wrap-separator można w zamian zawijać na wybranym znaku. Proszę zauważyć, że nagłówek nigdy nie jest zawijany i określa minimalną szerokość kolumny.

--wrap-separator łańcuch

Używa łańcucha jako separatora do zawijania tekstu w kolumnach, w których włączono zawijanie. Przy wyświetlaniu tekstu, separator jest zastępowany znakiem nowego wiersza. Opcja wymaga trybu tabelarycznego oraz kolumn z włączonym zawijaniem (zob. --table-wrap). Na przykład podanie "|" pozwoli na zawijanie na znakach potoku, w komórkach z danymi.

-H, --table-hide kolumny

Nie wypisuje podanych kolumn. Specjalny symbol "-" służy do ukrycie wszystkich nienazwanych kolumn (zob. --table-columns).

-O, --table-order kolumny

Określa kolejność kolumn wyjściowych.

-n, --table-name nazwa

Określa nazwę tabeli, użytą w wyjściu JSON. Domyślną jest "table".

-m, --table-maxout

Wypełnia całe dostępne miejsce na wyjściu.

-L, --keep-empty-lines

Zachowuje wiersze składające się wyłącznie z białych znaków w wejściu. Domyślnie całkowicie puste wiersze są ignorowane. Pierwotna nazwa tej opcji brzmiała --table-empty-lines, lecz została uznana za przestarzałą, ponieważ sprawiała wrażenie, że działała tylko w trybie tabelarycznym.

-r, --tree kolumna

Określa kolumnę do stosowania w trybie drzewiastym. Proszę zauważyć, że zapętlone zależności oraz inne problemy w relacji dziecko-rodzic są po cichu ignorowane.

-i, --tree-id kolumna

Określa kolumnę zawierającą unikalny identyfikator dziecka każdego wiersza, dla relacji dziecko-rodzic.

-p, --tree-parent kolumna

Określa kolumnę zawierającą identyfikator rodzica każdego wiersza, dla relacji dziecko-rodzic.

-x, --fillrows

Wypełnia wiersze przed wypełnianiem kolumn.

--color[=kiedy]

Koloryzuje wynik. Opcjonalnym argumentem kiedy może być auto, never (nigdy) lub always (zawsze). Gdy nie poda się argumentu kiedy, domyślnym ustawieniem jest auto. Kolory mogą być wyłączone; aktualne wbudowane ustawienie domyślne pokaże opcja --help. Zob. również rozdział KOLORY.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

Kolorowanie wyjściowe zaimplementowano poprzez terminal-colors.d(5). Jawne kolorowanie można wyłączyć za pomocą pustego pliku

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

dla polecenia column albo dla wszystkich narzędzi plikiem

/etc/terminal-colors.d/disable

Od wersji 2.41, obsługiwana jest również zmienna środowiskowa $NO_COLOR, służąca do wyłączenia kolorowania wyjścia, o ile nie włączy się je wprost opcją wiersza poleceń.

Globalne ustawienie przesłonią $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d danego użytkownika.

Proszę zauważyć, że kolorowanie wyjścia może być domyślnie włączone i wówczas katalogi terminal-colors.d mogą jeszcze nie istnieć.

Domyślnym schematem kolorów jest "column," i można go przesłonić za pomocą

--table-colorscheme nazwa

Następnie można stosować plik nazwa[.disable|enable|scheme] w /etc/terminal-colors.d/, $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d/.

Logiczna nazwa koloru (klucz) w schemacie kolorów może być zaadresowana przez właściwość kolumny colorkey= i headercolorkey=. Na przykład

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

Powyższe utworzy schemat kolorów o nazwie "fajnatabela" i pokoloruje nagłówek i dane pierwszej kolumny zgodnie z kluczami ze schematu. Pozostałe dwie kolumny będą pokolorowane za pomocą bezpośrednich nazw kolorów.

ŚRODOWISKO

COLUMNS

służy do określenia rozmiaru ekranu, jeśli inne informacje nie są dostępne.

LIBSMARTCOLS_DEBUG=all

włącza wyjście debugowania libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on

używa widocznych znaków wypełnienia.

Polecenie column pojawiło się w 4.3BSD-Reno.

Wersja 2.23 zmieniła działanie opcji -s na niezachłanne np.:

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

Stare wyjście:

a  b  c
1  3

Obecne wyjście (od util-linux 2.23):

a  b  c
1     3

Historyczne wersje narzędzie wskazywały, że domyślnie "wiersze są wypełniane przed kolumnami", a opcja -x to odwraca. Takie sformułowanie nie było jednak zgodne z faktycznym zachowaniem, dlatego zostało poprawione (zob. wyżej). Inne implementacje column mogą wciąż korzystać ze starszej dokumentacji, lecz ich zachowanie powinno być identyczne.

Wypisuje fstab z wierszem nagłówka oraz wyrównuje liczby do prawej strony:

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

Wypisuje fstab i ukrywa nienazwane kolumny:

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

Wypisuje drzewo:

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

Wypisuje tabelę z podanym separatorem zawijania:

echo -e 'Nazwa:Opis\nJan:twórca|oprogramowania\nJanina:analityk|danych' | column --table --separator ':' --table-wrap 2 --wrap-separator '|'
Nazwa  Opis
Jan    twórca
       oprogramowania
Janina analityk
       danych

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

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie column jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3