Ansatzの備忘録

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

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

問題41 注釈のチェック

問題のファイルは

https://github.com/shellgei/shellgei160

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

文中につけた目印のタグと注釈のタグの不一致を探す問題だった。とりあえずすべてのタグを抜き出して重複するものを削除すれば不一致のものが抜き出せるだろうなと考えたが、実際にどうワンライナーを書けばよいかはわからなかった。

解答は

cat annotation.md | grep -oE '\[\^[^[]+\]:?' | sed 's/]$/] 目印/' | sed 's/:$/ 注釈文/' | sort | awk '{print $2,$1}' | uniq -f1 -u

となる。結局思いつかなかったのは uniq のところだったわけだ。-f1 は1列目を無視するオプションである。