User Tools

Site Tools


pretty_print_csv_data

command line

 | column -t -s,

Example:

$ cat mason.csv
transaction_id,seller_id,customer_id,customer_name,amount
739554149,456938,7196590,unknown,38.05
730159148,206741,0676350,foo,9.68
703679772,590474,0177317,barbie,0.7
670454639,528847,0582211,vicky,370.45
$ cat mason.csv | column -t -s,
transaction_id  seller_id  customer_id  customer_name  amount
739554149       456938     7196590      unknown        38.05
730159148       206741     0676350      foo            9.68
703679772       590474     0177317      barbie         0.7
670454639       528847     0582211      vicky          370.45

Tested on:

git bash 2.18.0 running on Windows 10 Enterprise

bash function

Add this to ~/.bashrc

# Pretty print csv data
# Sample usage:
# pretty_csv data.csv
# cat data.csv | pretty_csv
# pretty_csv < data.csv
function pretty_csv
{
  column -t -s, "$@"
}

Tested on:

git bash 2.18.0 running on Windows 10 Enterprise

See also:- https://www.stefaanlippens.net/pretty-csv.html - talks about handling corner cases and other OSes.

zsh function

(Todo, 2023-11-27): Add instructions to do this in zsh shell

vim

To convert the whole file

:%!column -t

To convert a visual selection

:'<,'>!column -t

Sample input:

1.33570301776, 3.61194e-06, 7.24503e-06, -9.91572e-06, 1.25098e-05, 0.0102828
1.34538754675, 3.3689e-06, 9.86066e-06, -9.12075e-06, 1.18058e-05, 0.00334344
1.34808186291, -1.99011e-06, 6.53026e-06, -1.18909e-05, 9.52337e-06, 0.00158065

Sample output:

1.33570301776,  3.61194e-06,   7.24503e-06,  -9.91572e-06,  1.25098e-05,  0.0102828
1.34538754675,  3.3689e-06,    9.86066e-06,  -9.12075e-06,  1.18058e-05,  0.00334344
1.34808186291,  -1.99011e-06,  6.53026e-06,  -1.18909e-05,  9.52337e-06,  0.00158065

Ref:- https://stackoverflow.com/questions/1229900/reformat-in-vim-for-a-nice-column-layout - contains some tips on how to handle cases where there are delimiters inside string literals.

pretty_print_csv_data.txt · Last modified: 2023/11/27 05:59 by raju