Ansatzの備忘録

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

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

問題63 第5週が存在する月の調査

2021年の月のうち、日曜日が5回ある月を出力する問題だった。まず一年分の日付を出力するところで詰まってしまい解けなかった。

解答例は

seq 0 364 | sed 's/^/20210101 /' | sed 's/$/ days/' |date -f - '+%m %w' |grep 0$ | uniq -c | awk '$1==5{print $2}'

となる。20210101 n days という形式で日付を表している。そして0(日曜日)の部分だけを取り出して重複を数え、5になるところを抜き出している。