先日のシェル芸勉強会の問題を解いている際、sedでブレース展開させてその値を置換後の値として利用させる方法を思いついたので、忘れないように備忘で残しておく。 といっても、実際やってることは前に書いた複数回ごとにヒットした箇所に対しての置換処理の応用みたいなものなんだけど。
処理方法だが、以下のようにsedを実行することで置換後の値にブレース展開をした値を順番に置き換えていく事ができる。
bash
echo {a..g} | sed 's/ /\n \n/g' | sed -z -e's/ /'{1..100}'/'
shellblacknon@BS-PUB-UBUNTU-01:~$ echo {a..g}_line | sed 's/ /\n \n/g' a_line b_line c_line d_line e_line f_line g_line blacknon@BS-PUB-UBUNTU-01:~$ echo {a..g}_line | sed 's/ /\n \n/g' | sed -z -e's/ /'{1..100}'/' a_line 1 b_line 2 c_line 3 d_line 4 e_line 5 f_line 6 g_line