Ansatzの備忘録

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

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

問題136 関数の位置の入れ替え

問題のファイルは

https://github.com/shellgei/shellgei160

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

sedで置換すればいいなと思ってやってみたが、2つ目の関数を指定するときに範囲設定がうまくいっておらず失敗してしまった。方向性はあっていたのでなおさら悔しい。

解答例は

sed -Ez 's/(int b.+)(void a.+)(int main.+)/\2\1\3/g' somecode.c

となる。細かい指定をしなくてもかっこでくくっておけばうまく合わせてくれる。