column — columnate lists
column
[options] [ file...
]
The column utility formats its input into multiple columns. The util support three modes:
This is the default mode (required by backward compatibility).
This mode is enabled by option −x, −−fillrows
Determine the number of columns the input contains
and create a table. This mode is enabled by option
−t,
−−table
and columns formatting is
possible to modify by −−table−*
options.
Use this mode if not sure.
Input is taken from file
, or otherwise from
standard input. Empty lines are ignored and all invalid
multibyte sequences are encoded by \x<hex>
convention.
The argument columns for −−table−*
options is comma
separated list of the column names as defined by −−table−columns
or it's
column number in order as specified by input. It's possible
to mix names and numbers.
−J,
−−json
Use JSON output format to print the table, the
option −−table−columns
is
required and the option −−table−name
is
recommended.
−c,
−−output−width
widthOutput is formatted to a width specified as number of characters. The original name of this option is −−columns; this name is deprecated since v2.30. Note that input longer than width is not truncated by default.
−d,
−−table−noheadings
Do not print header. This option allows the use of logical column names on the command line, but keeps the header hidden when printing the table.
−o,
−−output−separator
stringSpecify the columns delimiter for table output (default is two spaces).
−s,
−−separator
separatorsSpecify 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.
−N,
−−table−columns
namesSpecify the columns names by comma separated list of names. The names are used for the table header or to address column in option arguments.
−R,
−−table−right
columnsRight align text in the specified columns.
−T,
−−table−truncate
columnsSpecify columns where text can be truncated when necessary, otherwise very long table entries may be printed on multiple lines.
−E,
−−table−noextreme
columnsSpecify columns where is possible to ignore unusually long (longer than average) cells when calculate column width. The option has impact to the width calculation and table formatting, but the printed text is not affected.
The option is used for the last visible column by default.
−e,
−−table−header−repeat
Print header line for each page.
−W,
−−table−wrap
columnsSpecify columns where is possible to use multi-line cell for long text when necessary.
−H,
−−table−hide
columnsDon't print specified columns. The special placeholder '−' may be used to hide all unnamed columns (see −−table-columns).
−O,
−−table−order
columnsSpecify columns order on output.
−n,
−−table−name
nameSpecify the table name used for JSON output. The default is "table".
−L,
−−table−empty−lines
Insert empty line to the table for each empty line on input. The default is ignore empty lines at all.
−r,
−−tree
columnSpecify column to use tree-like output. Note that the circular dependencies and other anomalies in child and parent relation are silently ignored.
−i,
−−tree−id
columnSpecify column with line ID to create child-parent relation.
−p,
−−tree−parent
columnSpecify column with parent ID to create child-parent relation.
−x,
−−fillrows
Fill rows before filling columns.
−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.
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
Historical versions of this tool indicated that "rows are
filled before columns" by default, and that the −x
option reverses this. This wording
did not reflect the actual behavior, and it has since been
corrected (see above). Other implementations of column may continue to use
the older documentation, but the behavior should be identical
in any case.
Print fstab with header line and align number to the right:
sed 's/#.*//' /etc/fstab | column −−table −−table-columns SOURCE,TARGET,TYPE,OPTIONS,PASS,FREQ −−table-right PASS,FREQ
Print fstab and hide unnamed columns:
sed 's/#.*//' /etc/fstab | column −−table −−table-columns SOURCE,TARGET,TYPE −−table-hide −
Print a tree:
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
The column command is part of the util-linux package and is available from https://www.kernel.org/pub/linux/utils/util-linux/.
Copyright (c) 1989, 1990, 1993 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (#)column.1 8.1 (Berkeley) 6/6/93 |