我尝试替换{string}形式的字符串但不知何故它不起作用。
regex='\{\w*\}'
pattern="{test}_test1"
while [[ $pattern =~ $regex ]]; do
toreplace=${BASH_REMATCH[@]}
pattern=${pattern/toreplace/replaced}
done
echo $pattern
除了以下输出外,我会这样做:
replaced_test1
答案 0 :(得分:1)
\ w
regex='\{[[:alpha:]]*\}'
pattern="{test}_test1"
while [[ $pattern =~ $regex ]]; do
toreplace=${BASH_REMATCH[0]}
pattern=${pattern/${toreplace}/replaced}
done
echo $pattern
答案 1 :(得分:1)
你错过了一个“$”和qutoes,改变它所以看起来更像是这样:
pattern="${pattern/$toreplace/replaced}"
它可以正常工作,在GNU bash版本3.2.52上进行测试