table
=====
Command line utility to format and display CSV and TSV.
For installation instructions, see the file INSTALL.
Examples
--------
Periodically display CPU load information in a single-line table (requires a
mounted Linux-style /proc file system and GNU watch(1))
$ watch "table /proc/loadavg -d ' ' -c 50 -n -s ss"
Format a long list of files in the current directory in a double line table with
single-line column divisors
$ LC_ALL=C ls -l | tail -n +2 | sed -E 's/ +/ /g' | table -d ' ' -n
Caution: format of ls(1) is not standardized, so this example might not work as
intended.
Print information from /etc/passwd in a table:
$ table -n -d : -f 3:1:1:1:4:4:4 /etc/passwd
Same as above, without borders and with different column alignment:
$ table -n -H -d: -arccclll -see -f3:1:1:1:4:4:4 /etc/passwd
Configuring GNU Midnight Commander (mc)
---------------------------------------
GNU Midnight Commander[2] file manager can be configured to use table as a
viewer (F3) for CSV files. To do that, edit /usr/lib/mc/ext.d/text.sh (or make
and edit a local copy, for example in ~/bin/text.sh, which we will assume here)
so that
case "${filetype}" in
block in do_view_action() function includes:
csv)
table -m -n "${MC_EXT_FILENAME}"
;;
You also need to edit extension file (Command->Edit extension file) or just edit
~/.config/mc/mc.ext and add the lines:
shell/.csv
View=%view{ascii} ~/bin/text.sh view csv %var{PAGER:more}
before includes and default target.
Bonus – TSV viewer: include
tsv)
tsvtable -m -n "${MC_EXT_FILENAME}"
;;
in ~/bin/text.sh and
shell/.tsv
View=%view{ascii} ~/bin/text.sh view tsv %var{PAGER:more}
in ~/.config/mc/mc.ext.
Configuring ranger file manager
-------------------------------
Ranger[3] file manager can be configured to use table as a CSV file viewer. To
do that, add the following to ~/.config/ranger/scope.sh, within the function
handle_extension():
## CSV
csv)
table -m "${FILE_PATH}" && exit 5
exit 1;;
Bonus – TSV viewer:
## TSV
tsv)
tsvtable -m "${FILE_PATH}" && exit 5
exit 1;;
Configuring vifm
----------------
Vifm[4] file manager can also be configured to use table as a CSV file viewer.
To accomplish this, add the following lines to ~/.config/vifm/vifmrc:
" CSV
fileviewer *.csv
\ table -m %c
Bonus – TSV viewer:
" TSV
fileviewer *.tsv
\ tsvtable -m %c
[1]: https://github.com/apenwarr/redo
[2]: https://www.midnight-commander.org
[3]: https://github.com/ranger/ranger
[4]: https://vifm.info
License
-------
table - Command line utility to format and display CSV
Copyright (C) 2020-2024 Страхиња Радић
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <https://www.gnu.org/licenses/>.