Sie können auch Folgendes verwenden:
column -s, -t < somefile.csv | less -#2 -N -S
column
ist ein Standard-Unix-Programm, das sehr bequem ist – es findet die passende Breite jeder Spalte und zeigt den Text als schön formatierte Tabelle an.
Hinweis:Wenn Sie leere Felder haben, müssen Sie eine Art Platzhalter darin einfügen, sonst wird die Spalte mit den folgenden Spalten zusammengeführt. Das folgende Beispiel demonstriert die Verwendung von sed
um einen Platzhalter einzufügen:
$ 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
Beachten Sie, dass die Ersetzung von ,,
für , ,
wird zweimal gemacht. Wenn Sie es nur einmal tun, 1,,,4
wird zu 1, ,,4
da das zweite Komma bereits passt.
Sie können csvtool
installieren (unter Ubuntu) über
sudo apt-get install csvtool
und dann ausführen:
csvtool readable filename | view -
Dadurch wird es innerhalb einer schreibgeschützten vim-Instanz schön und hübsch, selbst wenn Sie einige Zellen mit sehr langen Werten haben.
Schau mal in csvkit. Es bietet eine Reihe von Tools, die der UNIX-Philosophie entsprechen (was bedeutet, dass sie klein, einfach, zweckgebunden und kombinierbar sind).
Hier ist ein Beispiel, das die zehn bevölkerungsreichsten Städte Deutschlands aus der kostenlosen Maxmind World Cities-Datenbank extrahiert und das Ergebnis in einem konsolenlesbaren Format anzeigt:
$ 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 ist plattformunabhängig, da es in Python geschrieben ist.