column man page

column — columnate lists


printf "header1 header2\nbar foo\n" | column -c {{30}}

printf "header1,header2\nbar,foo\n" | column -s{{,}}

printf "header1 header2\nbar foo\n" | column -t

printf "header1\nbar\nfoobar\n" | column -c {{30}} -x


column [options] [file...]


The column utility formats its input into multiple columns.  By default, rows are filled before columns.  Input is taken from file, or otherwise from standard input.  Empty lines are ignored.


-c, --columns width

Output is formatted to a width specified as number of characters.

-o, --output-separator string

Specify the columns delimiter for table output (default is two spaces).

-s, --separator separators

Specify the possible input item delimiters (default is whitespace).

-t, --table

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 --output-separator option. Table output is useful for pretty-printing.

-x, --fillrows

Fill columns before filling rows.

-V, --version

Display version information and exit.

-h, --help

Display help text and exit.


The environment variable COLUMNS is used to determine the size of the screen if no other information is available.


sed 's/#.*//' /etc/fstab | column -t


Version 2.23 changed the -s option to be non-greedy, for example:

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

Old output:

a  b  c
1  3

New output (since util-linux 2.23):

a  b  c
1     3

See Also

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


The column command appeared in 4.3BSD-Reno.


The column command is part of the util-linux package and is available from

Referenced By

colrm(1), nisplus_table(5).

July 2014 util-linux User Commands