More Related Content Similar to 第87回PHP勉強会 LT 知って得するかもしれないテキスト処理コマンドのお話 (9) More from Ryo Shibayama (11) 第87回PHP勉強会 LT 知って得するかもしれないテキスト処理コマンドのお話12. join の使⽤用例例
a.txt には ユーザ ID, 課⾦金金額, 戦闘⼒力力 の順で⼊入ってる
b.txt には ユーザ ID, ユーザ名 の順で⼊入ってる
join -‐‑‒a1 -‐‑‒eʼ’-‐‑‒ʼ’ -‐‑‒oʼ’0 1.2 1.3 2.2ʼ’ <(sort a.txt) <(sort b.txt)
16. 差集合
diff と awk でできるよ
diff <(sort A) <(sort B) | awk ʻ‘/^</{print $2}ʼ’
19. tsv や csv に query 投げたい
あるんです
q -‐‑‒ Text as Data
https://github.com/harelba/q
q って!ググラビリティ低すぎ
20. 試しに使ってみる
% seq 1 1000 | q "select avg(c1),sum(c1) from -‐‑‒"
500.5 500500
c1というのが、カラムの1番⽬目という意味なので、
avg(c1)で、1〜~1000の総和の平均
sum(c1)で、1〜~1000の総和
がちゃんと出てますね
21. GROUP BY も使える
% cat test.txt
Mike 10
John 1
Bob 8
Mary 19
Bob 15
Bob 20
Mike 2
% q "select c1, count(*), sum(c2) from test.txt group by c1"
Bob 3 43
John 1 1
Mary 1 19
Mike 2 12
22. JOIN も使える
% cat test1.txt
a1234 aa1
b1234 aa2
c1234 aa3
d1234 aa3
!
% cat test2.txt
1 a1234 bb1
2 a1234 bb2
3 b1234 cc1
4 c1234 dd3
5 e1234 NULL
!
% q "select * from test1.txt as a left join test2.txt as b on a.c1 = b.c2"
a1234 aa1 1 a1234 bb1
a1234 aa1 2 a1234 bb2
b1234 aa2 3 b1234 cc1
c1234 aa3 4 c1234 dd3
d1234 aa3