突然ですが、CSV や TSV を SQL で検索したくなることはありませんか?私はあります!
だからといって、ちょっとしたスクリプトを書いたときに、 SQLite に放り込んだりするのは大袈裟です。

そういったときに "textql Execute SQL against structured text like CSV or TSV" が活躍します。

公式

インストール

$ brew install textql

こんな感じで使う

某所からエンジニアの自己紹介情報をTSV形式でエクスポートしてきて…

$ textql -header -dlm=tab -sql "favorite_editor,count() as count where favorite_editor is not null group by favorite_editor order by count desc" 個人情報.tsv

vim,3
emacs,2
Android Studio といえるようになりたい。,1
"Atom,Eclipse,メモ帳,Excel",1
CotEditor,1
IDEがあるならIDEを使うべき派,1
Sublime Text(買いたい),1
Sublime Textしか使ったことないです。,1
Vi,1
VisualStudio,1
miしか知らない,1
vi,1
更新中,1
環境の付属物,1
秀丸,1
選択と置換と検索が色々と出来るなら何でも。,1

※ textqlでは select およびテーブル名が省略可能、-header 1行目をヘッダ扱い、-dlm=tab 区切り文字がタブ

もともとのデータが自由記述形式だったので表記の揺れもありますが、概ね弊社では Emacs よりも Vim の方が人気そうですね。

仕事ではログなんかをちょっと例外的な手順で集計したいときなど、便利に使えます。


膨大なログの中から何か取ってくるみたいな作業にうってつけですね!
アプリ開発の中でもところどころに欲しい場面が出てくるかもしれません。


関連記事