猿问

请问 Shell 如何进行正则替换?

比如我由一个字符串变量,内容为:

AAA=<?=\${AAA}=?>BBB=<?=\${BBB}=?><%=[ "\${Alias}" == "" ]=%>CCC=\${CCC}

我想实现正则替换,将字符串生成为:

AAA=<?=${AAA}=?>BBB=<?=${BBB}=?><%= [ "${Alias}" == "" ] =%>CCC=\${CCC}

或者

AAA=${AAA}BBB=${BBB}[ "${Alias}" == "" ]CCC=\${CCC}

请问如何实现,我试了 sed 等,但是 Shell 能力有限,难以达到效果。

注意:我是想达到一种模板引擎替换的效果。


忽然笑
浏览 794回答 1
1回答

紫衣仙女

因为问题已经更正,答案也更新一下:借助grep和sed可以解决你的问题echo&nbsp;'AAA=<?=\${AAA}=?>'&nbsp;|&nbsp;grep&nbsp;-E&nbsp;'<[?%]=.*=[?%]>'&nbsp;|&nbsp;sed&nbsp;'s/\\\$/$/g'&nbsp;|&nbsp;sed&nbsp;'s/<[?%]=//g'&nbsp;|&nbsp;sed&nbsp;'s/=[?%]>//g'以上,返回&nbsp;AAA=${AAA}, 同样,上述语句也适用于<%=[ "\${Alias}" == "" ]=%>的解析。
随时随地看视频慕课网APP
我要回答