Skip to content

Instantly share code, notes, and snippets.

@akanehara
akanehara / acsh.sh
Last active November 25, 2016 09:59
GNU Parallel と cURLで axel と似たようなことできないかやってみた
#!/bin/bash
SCRIPT_NAME="$(basename $0)"
usage()
{
echo "Parallel HTTP downloader"
echo "Usage: ${SCRIPT_NAME} url [division]"
}
@akanehara
akanehara / vbox-rm-all-master-id.sh
Created July 14, 2016 00:57
VirtualBoxでうっかりmaster vmまで削除してしまったときのVagrant側後始末
find ~/.vagrant.d/boxes/ -name master_id | xargs rm
@akanehara
akanehara / vol23.sh
Last active June 29, 2016 08:35
シェル芸勉強会第23回
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
@akanehara
akanehara / gist:c084ba4764fcc475e1f6ace63f36f798
Last active February 10, 2017 05:51
dateコマンド(GNU)で多用するフォーマット
date +%Y%m%d%H%M%S
date '+%F %T'
@akanehara
akanehara / gist:17dd9f963bb8ab7f5ea9cb65ead2c0d1
Created June 3, 2016 02:39
jqで path value の2列の表を作りたい(途中)
echo '{"hoge":99, "children":[{"hoge":3},{"hoge":255}]}' | jq -r 'leaf_paths | map(if type=="number" then "["+tostring+"]" else "."+tostring+"" end) | join("")'
@akanehara
akanehara / gist:2804468251c6d8a00337be48cf5e3116
Last active June 29, 2016 01:48
Redmine作業時間ユーティリティ(OS X | BSD)
nkf timelog.csv | awk -v Date="2016/05/23" -F',' 'BEGIN{OFS="\t"}$2==Date{print$1,$4,$5,$6;d=$2;h+=$7;l++}END{;print l" Rows";print h"[h]",h/8"[day/man]";print d}' | tail -r | tee >(tail -n+4 | pbcopy)
pbpaste | sed -E -e $'s/^[\t\s]*//' | awk -F'\t' '$2~/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/' | awk -F'\t' '{k=$2;gsub(/\//,"",k);d[k]=$2;r[k]=r[k]$1"\t"$4"\t"$5"\t"$6"\n";h[k]+=$7;l[k]++}END{OFS="\t";for(k in d){print d[k],h[k]"[h]",h[k]/8"[day/man]",l[k]" Rows";print r[k]}}'
defaults write -g InitialKeyRepeat -int 12
defaults write -g KeyRepeat -int 0
@akanehara
akanehara / gist:8cc840a60f960cb153dfa8b960d90e64
Last active February 9, 2017 06:47
Home-brew シェル芸準備
# Mac
brew install xz coreutils findutils homebrew/dupes/diffutils homebrew/dupes/grep gnu-sed gawk gnu-tar parallel nkf jq nmap openssl
$(brew --prefix coreutils)/libexec/gnubin
$(brew --prefix findutils)/libexec/gnubin
$(brew --prefix gnu-sed)/libexec/gnubin
$(brew --prefix gawk)/bin
# Other
# GNU Parallel
@akanehara
akanehara / 2016-holidays.sh
Last active April 14, 2016 05:24
2016休日 (土・日・祝・振替休日)
{ echo '2016/03/21' '振替休日';
curl -s http://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv |
nkf |
gtail -n+3 |
gawk -F',' '$2{print$2,$1}{fflush()}' |
while read d s; do echo "$(gdate -d"$d" +'%Y/%m/%d') $s"; done;
gseq 20160101 20161231 |
gdate -f - +'%Y/%m/%d %w' 2> /dev/null |
gawk '$2=="0"{print$1,"日曜日"}$2=="6"{print$1,"土曜日"}{fflush()}';
} | gsort -k1,1 -u
@akanehara
akanehara / gist:3335284fb2f56bb534c5
Last active March 10, 2016 02:28
ズンドコ一行野郎
E0="ズン";E1="ドコ";while :;do eval echo "\$E$(($(od -vAn -N1 -tu4</dev/random)%2))";done|awk '{print}/ズン/{z++}/ドコ/{if(4<=z){print"キ・ヨ・シ!";exit(0)};z=0}'|tr '\n' ' ';echo