一度データベースを使い始めるとCSVやテキストファイルに戻ることができなくなります。データベースなら検索するのも簡単ですし、集計したりすることもできます。CSVでやろうと思うととても大変です。 そこで使ってみたいのがtrdsqlです。CSVやTSVファイルに対してSQLを実行できるようにするソフトウェアです。

trdsqlの使い方

例です。test.csvの内容をそのまま出力します。

$ trdsql "SELECT * FROM test.csv"
1,Orange
2,Melon
3,Apple

条件を付けるのも簡単です。

$ trdsql "SELECT * FROM test.csv where c1 > 2"
3,Apple

さらにMySQLやPostgreSQLに接続することで、複雑な関数も使えるようになります。

$ trdsql -driver mysql -dsn "moongift:password@/moongift" "SELECT c1, SHA2(c2,224) FROM test.csv"
1,a063876767f00792bac16d0dac57457fc88863709361a1bb33f13dfb
2,2e7906d37e9523efeefb6fd2bc3be6b3f2991678427bedc296f9ddb6
3,d0b8d1d417a45c7c58202f55cbb617865f1ef72c606f9bce54322802

コードをしっかりと追えていないのですが、恐らくデータを一度データベースに入れていると思われます(デフォルトはメモリのSQLiteでしょう)。そのためSELECTやWHEREなどについては柔軟にクエリが書けるようになっています。テキストファイルに対するクエリツールは幾つかありますが、非常に効率的な方法ではないでしょうか。

trdsqlはGo製のオープンソース・ソフトウェア(MIT License)です。

noborus/trdsql: A tool that can execute SQL queries on CSV and LTSV