Formats lines of TSV, CSV, or DSV (delimiter-separated values) into a pretty plain text table, wrappings cells with long content to try to fit the table in the screen.
Assuming you have a recent version of the Haskell platform on your system,
cabal update
cabal install table
table
Usage: table ([-d DELIM] | [-s]) [-c] [-R] [-H] [-w WIDTH]
Pretty format TSV input into table with aligned and wrapped cells
Available options:
-h,--help Show this help text
-d DELIM Input field delimiter. Default is TAB (\t).
-s Use any run of whitespace as input field delimiter
-c Parse input as CSV
-R Don't print row dividers
-H Print header row divider
-w WIDTH Max table width. Defaults to value of `tput cols`
command.
https://github.com/danchoi/table
Format Rails issues from the GitHub API into a table. This example uses
jq and
jsontsv to transform the GitHub API JSON
into tab separated values before piping that data into table
:
curl -s "https://api.github.com/repos/rails/rails/issues" |
jq -M '.[]' |
jsontsv -H 'number title user.login:user state' |
table
Outputs this when the terminal width is 72 characters:
--------+--------------------------------------+----------------+-------
number | title | user | state
--------+--------------------------------------+----------------+-------
18290 | Updating guides for Rails 5.0 | lucascaton | open
--------+--------------------------------------+----------------+-------
18288 | Add --skip-action-mailer (or -M) to | claudiob | open
| rails generate | |
--------+--------------------------------------+----------------+-------
18287 | Rails 4.2.0: Scaffold generator | dldinternet | open
| with --helper=false produced an | |
| error | |
--------+--------------------------------------+----------------+-------
18285 | undefined method 'clear' for | nPn- | open
| nil:NilClass in | |
| actionpack-4.2.0/lib/action_controll | |
| er/test_case.rb | |
--------+--------------------------------------+----------------+-------
18283 | Prefer `array?` rather than `array` | kamipo | open
--------+--------------------------------------+----------------+-------
18279 | Refactoring of add_constraints in | eileencodes | open
| AssociationScope | |
--------+--------------------------------------+----------------+-------
18273 | Rails 3.2.21 (4.x too?): | jensb | open
| attribute_will_change! with symbol | |
| parameter causes "multiple | |
| assignment" error in Postgres | |
--------+--------------------------------------+----------------+-------
18257 | ActionView::Helpers::TranslationHelp | jcoyne | open
| er.translate makes unsafe values | |
| html_safe | |
...
You can use table
to pretty-format TSV output from mysql
, psql
, or
sqlite3
as well, especially when you need row cell content to wrap to fit
everything nicely on the screen or printout.
- Daniel Choi https://github.com/danchoi
MIT License