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

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

 

インストール

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

インストール済みで、アップグレードする場合。

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

 

変換

Excel から CSV へ変換

$ in2csv data.xls > data.csv

JSON から CSV へ変換

$ in2csv data.json > data.csv

 

列名を出力

$ csvcut -n data.csv

列の抽出や列順の変更

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

1列目をキーにCSVファイルを結合

$ csvjoin -c 1 join_a.csv join_b.csv

 

レコードの抽出

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

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