Ansatzの備忘録

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

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

問題62 休日の突き合わせ

問題のファイルは

https://github.com/shellgei/shellgei160

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

日付に祝日名を追記する問題だった。

解答例は

nkf -wLux syukujitsu.csv | tail -n +2 | teip -d, -f 1 -- date -f- '+%Y-%m-%d' | awk -F- '$1>=2019&&$1<2022' | cat - <(dateutils.dseq 2019-01-01 2021-12-31 | sed 's/$/,@/') |sort -r | uniq -w10 | tac

となる。join をつかわず sort と uniq でうまく処理をしている。teip のコマンドが sudo apt install で入れられないようなのでちょっとめんどくさかった。teip にくっついている date コマンドではおそらく - で標準入力からデータを受け取るようにしているのだろう。マニュアルにはっきり書いていたわけではないけどたぶんそうだと思う。