CSVコマンドラインツール csvkit

Nid: 899

カンマや改行がデータに含まれているCSVファイルの場合、cutやsed,awkコマンドでは処理が困難なので、csvkitをインストールしておくと便利です。cygwin でも動作します。

1 . インストール

Ubuntu インストール

$ sudo apt-get install python-dev python-pip python-setuptools build-essential
$ sudo pip install csvkit

cygwin でのインストール

$ ./setup-x86_64.exe --no-admin -q --packages=python3-devel
$ pip install csvkit

アップグレード

$ pip install --upgrade setuptools
$ pip install --upgrade csvkit

2 . 変換

Excel から CSV へ変換

$ in2csv data.xls > data.csv

JSON から CSV へ変換

$ in2csv data.json > data.csv

3 . 列操作

列名を出力

$ csvcut -n data.csv

列の抽出や列順の変更

$ csvcut -c column_c,column_a data.csv > new.csv

4 . マージ

1列目をキーにCSVファイルをマージ

$ csvjoin -c 1 join_a.csv join_b.csv

5 . レコード抽出

正規表現を使用し、「status」列の値が文字列"NG"にマッチしたレコード以外を抽出する例。「status」列が「NG」以外のレコードを選択。

$ csvgrep -c status -i -r "^NG$" onsen.csv