Last active
June 29, 2016 08:35
-
-
Save akanehara/cbf2b468d3d8e9c64681a6d72cb8be27 to your computer and use it in GitHub Desktop.
シェル芸勉強会第23回
This file contains hidden or 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
curl http://www.data.jma.go.jp/fcd/yoho/typhoon/statistics/landing/landing.csv | nkf -wLux > landing.csv | |
# Q1 | |
gcat landing.csv | gtail -n+2 | gawk -F',' '{y=$1;for(m=1;m<=12;m++){printf("%04d%02d %d\n",y,m,$(m+1))}}' > monthly_typhoon | |
# Q2 | |
diff <(gcat monthly_typhoon | gawk '{a[substr($1,0,4)]+=$2}END{for(i in a){print i,a[i]}}' | gsort -k1,1) \ | |
<(gcat landing.csv | gtail -n+2 | gawk -F',' '!$NF{$NF=0}{print $1,$NF}') | |
# Q3 | |
gcat monthly_typhoon | gawk '{print substr($1,5,6),$2}' | gawk '{t[$1]++;r[$1]+=$2}END{for(m in t){print m,r[m]/t[m]}}' | sort -k1,1 | |
# Q4 | |
gcat monthly_typhoon | awk '$2{print substr($1,1,4),substr($1,5,6),$2}' | gsort -uk1,1 | gawk '{a[$2]++}END{for(i in a){print i, a[i]}}' | sort -k1,1 | |
# Q4 別解 | |
gcat monthly_typhoon | awk '$2' | guniq -w4 | gawk '{a[substr($1,5,6)]++}END{for(m in a){print m, a[m]}}' | gsort -k1,1 | |
# Q5 | |
gcat monthly_typhoon | gawk '{a[substr($1,1,4)]+=$2}END{for(y in a){print y, a[y]}}' | gawk '$2==0' | |
# Q5 別解(0の月が12回) | |
gcat monthly_typhoon | ggrep ' 0$' | gsed 's/.. 0$//' | guniq -c | grep '12 ' | |
# Q6 | |
gcat hittakuri | gawk '{a[$1]++}END{for(i in a){print a[i],i}}' | gsort -nrk1,1 | |
# Q6 別解 uniq -c を使う | |
gcat hittakuri | gawk '$0=$1' | gsort | guniq -c | gsort -nrk1,1 | |
# Q7 | |
gjoin -1 1 -2 2 <(gcat OSAKA/population_h27sep | LANG=C gsort -k1,1) <(gcat hittakuri | gawk '$0=$1' | gsort | guniq -c | LANG=C gsort -k2,2) | gawk '{print $1,$3/$2}' | |
# Q8 場所と日付の組で集計 | |
cat hittakuri | awk '{print $1$2$3$8$9$(10)}' | sort | uniq -c | awk '2<=$1' | |
# Q8 別解 sort -d で重複だけが得られる | |
cat hittakuri | awk '{print $1$2$3$8$9$(10)}' | sort | uniq -d | |
# Q9 | |
cat hittakuri | awk '$6="ひったくり"{print $7,$5}' | awk '{t[$1]++}$2=="既遂"{s[$1]++}END{for(x in t){print x, s[x]/t[x]}}' | |
# memo | |
xxd -ps | head -c $n | |
less -S |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment