2017-07-25 6 views
0

{string}という形式の文字列を置き換えようとしていますが、何とか機能しません。それを変更し、中かっこのBash文字列置換

regex='\{[[:alpha:]]*\}' 
pattern="{test}_test1" 
while [[ $pattern =~ $regex ]]; do 
    toreplace=${BASH_REMATCH[0]} 
    pattern=${pattern/${toreplace}/replaced} 
done 
echo $pattern 
+1

これらは「中かっこ」です。角括弧は、HTML/XMLに使用されるものです。 – Lix

+0

\ bash正規表現によって\ wが認識されない –

+0

@Lix更新されたタイトル – papanito

答えて

1

あなたは "$" とqutoesが欠落しているbashの正規表現では認識されませんwは\

replaced_test1 
+1

ありがとう、また、@ Nahuel Fouilleilのバージョンは のパターン$ $ {pattern/$ {toreplace}/replaced} – papanito

1

regex='\{\w*\}' 
pattern="{test}_test1" 
while [[ $pattern =~ $regex ]]; do 
    toreplace=${BASH_REMATCH[@]} 
    pattern=${pattern/toreplace/replaced} 
done 
echo $pattern 

は、私は次の出力を除く外ですだからこのように見える: pattern="${pattern/$toreplace/replaced}"

それはうまく動作しますn GNU bash、バージョン3.2.52