この手のツールはいくつかあるようなのですが、今回「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