sedの引数を変数に格納する方法


例えば、次のコマンド

[code]

    echo a b c d e f | sed -e 's/.*\(b.*e\).*/\1/' -e 's/.*b c *\(.*\) .*/\1/'
    
[/code]

の`-e 's/.*\(b.*e\).*/\1/' -e 's/.*b c *\(.*\) .*/\1/'`の部分を変数に格納して

[code]

    echo a b c d e f | sed ${regex[0]}
    
[/code]

のように実行したいのですが、変数が展開されるときにクォーテーションマークがどのように付与されるのかを理解できず、

[code]

    regex[0]='-e s/.*\(b.*e\).*/\1/'
    
[/code]

まではできたのですが、コマンドにスペースが入った場合、どうすれば良いのかわからないため、後半のコマンドを格納することができません。  
この場合、どのように変数に格納すれば良いのでしょうか。  
よろしくお願いいたします。




みなさんご回答いただきまして、ありがとうございました。  
今回は最も簡素で意図していた形に近いmetropolisさんの`-e`を一つにまとめる回答を採用させていただきたいと思います。

[code]

    regex='-e s/.*\(b.*e\).*/\1/;s/.*b c *\(.*\) .*/\1/'
    echo a b c d e f | sed "$regex"
    
[/code]

今後場合によっては`eval`を利用する必要があるかもしれません。頭の隅に入れさせていただきます。




若干regex変数の定義がお望みのものと違うかもしれませんが以下は如何でしょうか。

[code]

    regex="sed -e 's/.*\(b.*e\).*/\1/' -e 's/.*b c *\(.*\) .*/\1/'"
    echo a b c d e f |eval ${regex}
    
[/code]

