These are some simple bash functions and scripts for making CSV/TSV files prettier on the command line
see http://stefaanlippens.net/pretty-csv.html for more information.
These are some simple bash functions and scripts for making CSV/TSV files prettier on the command line
see http://stefaanlippens.net/pretty-csv.html for more information.
##################################################### | |
# Bash functions to put in .bashrc or .bash_aliases # | |
##################################################### | |
# For Debian/Ubuntu | |
function pretty_csv { | |
column -t -s, -n "$@" | less -F -S -X -K | |
} | |
function pretty_tsv { | |
column -t -s $'\t' -n "$@" | less -F -S -X -K | |
} | |
# For non-Debian systems | |
function pretty_csv { | |
perl -pe 's/((?<=,)|(?<=^)),/ ,/g;' "$@" | column -t -s, | less -F -S -X -K | |
} | |
function pretty_tsv { | |
perl -pe 's/((?<=\t)|(?<=^))\t/ \t/g;' "$@" | column -t -s $'\t' | less -F -S -X -K | |
} |
#!/bin/bash | |
perl -pe 's/((?<=,)|(?<=^)),/ ,/g;' "$@" | column -t -s, | exec less -F -S -X -K |
#!/bin/bash | |
perl -pe 's/((?<=\t)|(?<=^))\t/ \t/g;' "$@" | column -t -s $'\t' | exec less -F -S -X -K |
Thanks, great stuff.
I have commas inside string fields like this:
So threw in an awk to replace separators outside strings to semicolons ( using @John1024's answer ):
which results in: