Puoi anche usare questo:
column -s, -t < somefile.csv | less -#2 -N -S
column
è un programma unix standard molto comodo:trova la larghezza appropriata di ogni colonna e visualizza il testo come una tabella ben formattata.
Nota:ogni volta che hai campi vuoti, devi inserire una sorta di segnaposto, altrimenti la colonna viene unita alle colonne successive. L'esempio seguente mostra come utilizzare sed
per inserire un segnaposto:
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
Nota che la sostituzione di ,,
per , ,
si fa due volte. Se lo fai solo una volta, 1,,,4
diventerà 1, ,,4
poiché la seconda virgola è già abbinata.
Puoi installare csvtool
(su Ubuntu) tramite
sudo apt-get install csvtool
e poi esegui:
csvtool readable filename | view -
Questo lo renderà carino e carino all'interno di un'istanza vim di sola lettura, anche se hai alcune celle con valori molto lunghi.
Dai un'occhiata a csvkit. Fornisce una serie di strumenti che aderiscono alla filosofia UNIX (nel senso che sono piccoli, semplici, con un unico scopo e possono essere combinati).
Ecco un esempio che estrae le dieci città più popolate della Germania dal database gratuito Maxmind World Cities e visualizza il risultato in un formato leggibile dalla console:
$ csvgrep -e iso-8859-1 -c 1 -m "de" worldcitiespop | csvgrep -c 5 -r "\d+"
| csvsort -r -c 5 -l | csvcut -c 1,2,4,6 | head -n 11 | csvlook
-----------------------------------------------------
| line_number | Country | AccentCity | Population |
-----------------------------------------------------
| 1 | de | Berlin | 3398362 |
| 2 | de | Hamburg | 1733846 |
| 3 | de | Munich | 1246133 |
| 4 | de | Cologne | 968823 |
| 5 | de | Frankfurt | 648034 |
| 6 | de | Dortmund | 594255 |
| 7 | de | Stuttgart | 591688 |
| 8 | de | Düsseldorf | 577139 |
| 9 | de | Essen | 576914 |
| 10 | de | Bremen | 546429 |
-----------------------------------------------------
Csvkit è indipendente dalla piattaforma perché è scritto in Python.