便利なのですが、名前がググりづらいことこの上無い感じですね。
環境
- OS: macOS Mojave 10.14.6
- Homebrew: 2.1.12-8-gfd9a09e
- homebrew-core: (git revision 5b99; last commit 2019-10-05)
- q: 1.7.4
インストール方法
Homebrew で fomula が用意されているので
- $ brew install q
実行例
例えば、以下のような "servant.csv" があったとして
以下のように SQL が発行できます。
- select
- $ q -d, -H 'select * from servant.csv ;'
- 1,Altria Pendragon,saver,5
- 2,Altria Pendragon (alter),saver,4
- 3,Altria Pendragon,archer,5
- 4,Altria Pendragon,lancer,5
- 5,Altria Pendragon (alter),lancer,4
- count
- $ q -d, -H 'select count(*) from servant.csv ;'
- 5
- limit
- $ q -d, -H 'select * from servant.csv limit 2;'
- 1,Altria Pendragon,saver,5
- 2,Altria Pendragon (alter),saver,4
- distinct
- $ q -d, -H 'select distinct(name) from servant.csv ;'
- Altria Pendragon
- Altria Pendragon (alter)
- where
- $ q -d, -H 'select id,name,class from servant.csv where rarity = 5;'
- 1,Altria Pendragon,saver
- 3,Altria Pendragon,archer
- 4,Altria Pendragon,lancer
- order
- $ q -d, -H 'select * from servant.csv order by rarity;'
- 2,Altria Pendragon (alter),saver,4
- 5,Altria Pendragon (alter),lancer,4
- 1,Altria Pendragon,saver,5
- 3,Altria Pendragon,archer,5
- 4,Altria Pendragon,lancer,5
- distinct + count
- $ q -d, -H 'select count(distinct(name)) from servant.csv ;'
- 2
なお、付けているオプションは
- -d (--delimiter) 今回は csv なので ',' が delimiter です。
- -H (--skip-header) 今回は一行目に header があるので、それは値としてみなしません。
- と、いうことは header が無い場合も想定していると思われます(やったこと無し)。
です。--help は貴重な情報源。
まとめ
と、いう感じで、"q" を使うと CSV を色々いじったりできて便利です。
ちなみに、 Office で開くと重かったり止まったりするサイズの csv でも捌いてくれます。つよい。