9月末ごろに発売されたシェル芸本。手を付けられていなかったのですがようやく落ち着いた感があるので少しずつ解答して行こうと思います。サクッと行きます。
前回はここ
問題6
$ echo {{{{_,}_,}_,}_,}'*' | fmt -1 | tr _ ' ' * * * * *
問題7
$ cat qdata/7/kakeibo.txt | ocs "BEGIN{var s=0M;}i(F[1])>=20191000{s+=(F[2][0]=='*' ? 1.08M : 1.10M)*decimal.Parse(F[3])}i(F[1])<20191000{s+=1.08M*decimal.Parse(F[3])}END{println((int)s)}" 53612
awk
でいいな…
問題8
$ cat qdata/8/access.log | teip -og "\[.+\]" -- awk -F: '{print $0, $2>=12 ? "午後" : "午前"}' | sel -- -1 | sort | uniq -c | sort -rn 3 午後 2 午前
問題9
$ dateutils.dseq --format "%d/%b/%Y %H:" 2016-12-24T21:00:00 1h 2016-12-25T03:00:00 | grep -f- ./qdata/9/log_range.log 192.168.77.248 - - [24/Dec/2016 21:12:20] "GET / HTTP/1.0" 200 4294 192.168.152.143 - - [24/Dec/2016 22:06:19] "GET / HTTP/1.0" 200 7255 192.168.6.132 - - [24/Dec/2016 23:00:42] "GET / HTTP/1.0" 200 4298 192.168.222.3 - - [25/Dec/2016 00:03:23] "GET / HTTP/1.0" 200 8547 192.168.101.95 - - [25/Dec/2016 01:01:40] "GET / HTTP/1.0" 200 8488 192.168.141.18 - - [25/Dec/2016 02:15:52] "GET / HTTP/1.0" 200 4533 192.168.110.169 - - [25/Dec/2016 03:06:54] "GET / HTTP/1.0" 200 3461
dseq
って時間を刻みに指定できたんだなあ
問題10
$ cat qdata/10/headings.md | sd '## (.+)' '$1\n---' | sd '# (.+)' '$1\n===' AAA === これはAAAです BBB === これはBBBです。 楽しいですね。 CCC --- これはCCCCです DDD --- これはDDDです
問題11
$ cat qdata/11/gijiroku.txt | sed -z 's/すず\n/鈴木:/g;s/さと\n/佐藤:/g;s/やま\n/山田:/g' 鈴木:あばばあばば 佐藤:あばばばばばばば! 山田:びっくりするほどユートピア!びっくりするほどユートピア! 鈴木:うひょひょひょwwwwwやまwwやまwww 佐藤:ひょおお?ひょおお??? 鈴木:それでは会議を終わります
高次元の会話