GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zeigen Sie tabellarische Dateien wie CSV über die Befehlszeile an

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.


Linux
  1. So teilen und kombinieren Sie Dateien von der Befehlszeile in Linux

  2. Verwenden von Google Drive über die Linux-Befehlszeile

  3. PostgreSQL-CSV-Import über die Befehlszeile

  4. Wie lösche ich den Inhalt einer Datei über die Befehlszeile?

  5. Alternative zur SSH-Befehlszeile von Ubuntu

Kopieren Sie eine Datei in mehrere Verzeichnisse von der Befehlszeile unter Linux

So senden Sie eine E-Mail mit Dateianhang von der Befehlszeile aus

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile

Wie überprüfe ich die Inode-Nutzung über cPanel und die Befehlszeile?