これも使用できます:
column -s, -t < somefile.csv | less -#2 -N -S
column
は、非常に便利な標準の UNIX プログラムです。各列の適切な幅を見つけ、適切にフォーマットされた表としてテキストを表示します。
注:空のフィールドがある場合は常に、何らかのプレースホルダーを配置する必要があります。そうしないと、列は次の列とマージされます。次の例は、sed
の使用方法を示しています。 プレースホルダーを挿入するには:
$ 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
,,
の置換に注意してください , ,
の場合 は2回行われます。 1回だけなら 1,,,4
1, ,,4
になります 2 番目のコンマは既に一致しているためです。
csvtool
をインストールできます (Ubuntu の場合)
sudo apt-get install csvtool
次に実行します:
csvtool readable filename | view -
これにより、非常に長い値を持つセルがいくつかある場合でも、読み取り専用の vim インスタンス内で見栄えがよくなります。
csvkit を見てください。 UNIX の哲学に準拠した一連のツールを提供します (つまり、それらは小さく、単純で、単一目的であり、組み合わせることができます)。
以下は、無料の Maxmind World Cities データベースからドイツで最も人口の多い 10 の都市を抽出し、結果をコンソールで読み取り可能な形式で表示する例です:
$ 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 は Python で記述されているため、プラットフォームに依存しません。