Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題65

問題65 各月の休日数

問題のファイルは

https://github.com/shellgei/shellgei160

からダウンロードできる。

休日の数を数える問題だった。

解答例は

$ seq -f '2019-01-01 %g day' 0 364 | date -f - '+%Y-%m-%d %a' | join -a 1 - <(cat syukujitsu.csv | nkf -Lux | grep ^2019 | awk -F'[/ ,]' '{printf "%d-%02d-%02d %s\n",$1,$2,$3,$4}')  | awk '$2~"[土|日]"||NF==3' | cut -c 1-7 | uniq -c

となる。日付の一覧を作成した後、休日データを成形したものと結合して整理して答えとしている。細かい話だが、日付フォーマットの+%Y-%m...のハイフンは何か特別な記号として用いられているわけではないので@に置き換えたりできる。