407 Stimmen

Anzeigen von Tabellendateien wie CSV über die Befehlszeile

Kennt jemand einen Befehlszeilen-CSV-Viewer für Linux/OS X? Ich denke da an etwas wie less aber dadurch werden die Spalten besser lesbar verteilt. (Ich hätte kein Problem damit, die Datei mit OpenOffice Calc oder Excel zu öffnen, aber das ist viel zu aufwendig für nur siehe Ich muss mir die Daten ansehen, wie ich sie brauche.) Ein horizontaler und vertikaler Bildlauf wäre toll.

564voto

user437522 Punkte 5244

Sie können auch dies verwenden:

column -s, -t < somefile.csv | less -#2 -N -S

column ist ein Standard-Unix-Programm, das sehr praktisch 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 einfügen, da die Spalte sonst mit den nachfolgenden Spalten zusammengelegt wird. Das folgende Beispiel zeigt, wie man 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 ,, para , , wird zweimal durchgeführt. Wenn Sie es nur einmal tun, 1,,,4 werden 1, ,,4 da das zweite Komma bereits übereinstimmt.

147voto

d_chall Punkte 1301

Sie können Folgendes installieren csvtool (unter Ubuntu) über

sudo apt-get install csvtool

und dann ausführen:

csvtool readable filename | view -

Dies macht es schön und hübsch innerhalb einer Nur-Lese-Vim-Instanz, auch wenn Sie einige Zellen mit sehr langen Werten haben.

97voto

Kai Sternad Punkte 21394

Werfen Sie einen Blick auf csvkit . Es bietet eine Reihe von Werkzeugen, die der UNIX-Philosophie folgen (d. h. sie sind klein, einfach, zweckgebunden und können kombiniert werden).

Hier ist ein Beispiel, das die zehn bevölkerungsreichsten Städte in Deutschland aus dem freien Internet extrahiert Maxmind Weltstädte-Datenbank und zeigt das Ergebnis in einem konsolenlesbaren Format an:

$ 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.

55voto

Scott Hansen Punkte 752

Tabview: leichtgewichtiger Python-Curses-Kommandozeilen-CSV-Dateibetrachter (und auch andere tabellarische Python-Daten, wie eine Liste von Listen) ist hier auf Github

Merkmale:

  • Python 2.7+, 3.x
  • Unicode-Unterstützung
  • Tabellenkalkulationsähnliche Ansicht zur einfachen Visualisierung tabellarischer Daten
  • Vim-ähnliche Navigation (h,j,k,l, g(oben), G(unten), 12G goto line 12, m - mark, ' - Sprung zur Markierung, usw.)
  • Dauerhafte Kopfzeile umschalten
  • Dynamische Anpassung von Spaltenbreite und -abstand
  • Aufsteigend oder absteigend nach einer beliebigen Spalte sortieren. Natürliche" Sortierung für numerische Werte.
  • Volltextsuche, n und p zum Wechseln zwischen den Suchergebnissen
  • Enter", um den gesamten Zellinhalt anzuzeigen
  • Zellinhalt in die Zwischenablage übertragen
  • F1 oder ? für Tastenkombinationen
  • Kann auch über die Python-Befehlszeile verwendet werden, um beliebige tabellarische Daten zu visualisieren (z. B. Liste von Listen)

38voto

Myer Punkte 3582

Wenn Sie ein Vimmer sind, verwenden Sie die CSV-Plugin die einfach nur schön ist:

beautiful .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X