GNU/Linux >> Znalost Linux >  >> Linux

Zobrazte tabulkový soubor, například CSV, z příkazového řádku

Můžete také použít toto:

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

column je standardní unixový program, který je velmi pohodlný – najde vhodnou šířku každého sloupce a zobrazí text jako pěkně formátovanou tabulku.

Poznámka:Kdykoli máte prázdná pole, musíte do nich vložit nějaký zástupný symbol, jinak se sloupec sloučí s následujícími sloupci. Následující příklad ukazuje, jak používat sed pro vložení zástupného symbolu:

$ 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

Všimněte si, že nahrazení ,, pro , , se provádí dvakrát. Pokud to uděláte pouze jednou, 1,,,4 bude 1, ,,4 protože druhá čárka je již shodná.


Můžete nainstalovat csvtool (na Ubuntu) přes

sudo apt-get install csvtool

a poté spusťte:

csvtool readable filename | view -

Díky tomu bude v instanci vim pouze pro čtení pěkný a pěkný, i když máte některé buňky s velmi dlouhými hodnotami.


Podívejte se na csvkit. Poskytuje sadu nástrojů, které se drží filozofie UNIX (to znamená, že jsou malé, jednoduché, jednoúčelové a lze je kombinovat).

Zde je příklad, který extrahuje deset nejlidnatějších měst v Německu z bezplatné databáze Maxmind World Cities a zobrazí výsledek ve formátu čitelném pro konzoli:

$ 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 je nezávislý na platformě, protože je napsán v Pythonu.


Linux
  1. Jak rozdělit a kombinovat soubory z příkazového řádku v Linuxu

  2. Jak vymazat obsah souboru z příkazového řádku?

  3. Alternativa k příkazovému řádku SSH z Ubuntu

  1. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  2. Jak zobrazit velikost/podrobnosti souboru z příkazu ls v Unixu

  3. Import PostgreSQL CSV z příkazového řádku

  1. Jak mohu otevřít soubor pouze pro čtení z příkazového řádku pomocí emacs/vi/vim

  2. Jak nahrát jeden soubor pomocí FTP z příkazového řádku?

  3. Jak získat adresu URL souboru Dropbox z příkazového řádku?