便利なのですが、名前がググりづらいことこの上無い感じですね。
環境
- 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" があったとして
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
id | name | class | rarity | |
---|---|---|---|---|
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 |
以下のように 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 でも捌いてくれます。つよい。
0 件のコメント:
コメントを投稿