💾 Archived View for gemini.strahinja.org › table captured on 2023-03-20 at 17:25:06. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

➡️ Next capture (2023-04-19)

🚧 View Differences

-=-=-=-=-=-=-


 ,==============================================. 
||       __  |         __|    __     |          ||
||      /  |_|_,______|  |___|  |____|__        ||
||______|     /       |      \  |       \_______||
||      |  --/   --   |   --  | |   -- _/       ||
||      \____/\_____/_|______/___\____\         ||
||           |           |           |          ||
``==============================================" 

table

Command line utility to format and display CSV.

Prerequisites

C compiler, preferably GNU C or similar.

Install

$ git clone https://git.sr.ht/~strahinja/table
$ cd table
$ su

Then, if you have

apenwarr/redo

# redo install

if you don't:

# ./do install

Install (Arch)

$ <aur_helper> -S table

Examples

Periodically display CPU load information in a single-line table

$ 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

Print information from /etc/passwd in a table:

$ table -n -d : -f 2:1:1:1:5:5:5 /etc/passwd

Configuring GNU Midnight Commander (mc)

GNU Midnight Commander 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 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;;</pre>

Bonus – TSV viewer:

## TSV
tsv)
    tsvtable -m "${FILE_PATH}" && exit 5
    exit 1;;

Configuring vifm

vifm 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

Changelog

See git log for more information.

License

table - Command line utility to format and display CSV.

Copyright (C) 2020, 2021, 2022, 2023 Страхиња Радић

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/