Ansatzの備忘録

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

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

問題60 プレミアムフライデー

日付の出力から月末の金曜日を抜き出す問題だった。なにかうまいコマンドがあるのかと思ったが地道に絞り込んでいくしかないようだった。

解答例は

seq 0 365 | xargs -I@ date '+%F %a' -d '2017-02-24 @day' | grep ^2017 | grep '金' |tac| uniq -w7|tac

となる。まず1年分の日付を出力して、そのあと金曜日だけに絞り込む。tac で反転させてから uniq で絞り込んでいるのは、tac で反転させないと月末の行が消えてしまうからである。