GNU/Linux >> Linux の 問題 >  >> Linux

コマンド ラインから CSV などの表形式ファイルを表示する

これも使用できます:

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 で記述されているため、プラットフォームに依存しません。


Linux
  1. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  2. LinuxコマンドラインからのGoogleドライブの使用

  3. Linuxコマンドラインでファイルから特定の行を削除する

  1. emacs/vi/vim を使用してコマンドラインからファイルを読み取り専用で開くにはどうすればよいですか

  2. コマンドラインからFTPで1つのファイルをアップロードする方法は?

  3. Ubuntu の SSH コマンドラインの代替

  1. Linuxでコマンドラインからファイルを分割して結合する方法

  2. Unix で ls コマンドからファイル サイズ/詳細を表示する方法

  3. コマンドラインからの PostgreSQL CSV インポート