この手のツールはいくつかあるようなのですが、今回「q」というのを使ってみました。
内部的にSQLite3を使っているようで、サブクエリやJOINもできる本格的なSQLが使えます。 RDBのテーブルを適当にCSV出力したものを手元で加工するのに非常に便利でした。
何かと便利に使えそうなので、MacならHomebrewでサクッと入れておくと良いでしょう。
% brew install q
ですがbrewで入れただけだと、僕の環境では次のようなエラーが出てしまいました。
% q Traceback (most recent call last): File "/usr/local/bin/q", line 49, in <module> from six.moves import configparser, range, filter ImportError: No module named six.moves
Pythonのsixというモジュールが必要なようです。次のようにインストールしたら解消しました。
% pip install six
使ってみます。
オプションは-H
で1行目がヘッダであることを明示。-d','
でカンマ区切り(CSV)であることを明示します。
2つのCSVファイルをJOINして新しいCSVファイルに書き出すなんてこともできて便利!
% q -H -d',' " SELECT l.created_at, u.full_name, l.url FROM logs.csv l INNER JOIN users.csv u ON u.id = l.user_id ORDER BY l.created_at ASC " > access_log.csv