csvq - CSVをデータベースのように操作する
レトロなファイルフォーマットと思っていてもまだまだ職場では使われているのがCSVです。システムからもCSV出力するものがまだまだあるはずです。CSVといえばデータがひたすら並んでおり、データの抽出も面倒です。 そこで使ってみたいのがcsvqです。コマンドラインでCSVファイルをまるでデータベースのようにデータ抽出できます。
csvqの使い方
普通にSQLを書いてデータ抽出できます。
$ csvq 'select * from `test.csv` where column1 > 1'
+---------+---------+
| column1 | column2 |
+---------+---------+
| 2 | str2 |
| 3 | str3 |
+---------+---------+
条件を変えたり、表示するカラムの指定もできます。
$ csvq 'select column1 from `test.csv` where column1 > 1'
+---------+
| column1 |
+---------+
| 2 |
| 3 |
+---------+
csvqはまさにSQLを使ってCSVのデータ抽出を行えるようになります。Joinも可能ですし、さらにSELECTだけでなくInsertやUpdateもできます。トランザクションもサポートしており、データメンテナンスにも活用できます。面白いところではJSONが使えたり、Shift-JISもサポートしていることでしょう。
csvqはGo製のオープンソース・ソフトウェア(MIT License)です。