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.