シェルワンライナー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
となる。細かい指定をしなくてもかっこでくくっておけばうまく合わせてくれる。