为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

忽然笑 2018-07-21 22:23:02
比如我由一个字符串变量,内容为:AAA=<?=\${AAA}=?>BBB=<?=\${BBB}=?><%=[ "\${Alias}" == "" ]=%>CCC=\${CCC}我想实现正则替换,将字符串生成为:AAA=<?=${AAA}=?>BBB=<?=${BBB}=?><%= [ "${Alias}" == "" ] =%>CCC=\${CCC}或者AAA=${AAA}BBB=${BBB}[ "${Alias}" == "" ]CCC=\${CCC}请问如何实现,我试了 sed 等,但是 Shell 能力有限,难以达到效果。注意:我是想达到一种模板引擎替换的效果。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

因为问题已经更正,答案也更新一下:
借助grep和sed可以解决你的问题

echo 'AAA=<?=\${AAA}=?>' | grep -E '<[?%]=.*=[?%]>' | sed 's/\\\$/$/g' | sed 's/<[?%]=//g' | sed 's/=[?%]>//g'

以上,返回 AAA=${AAA}, 同样,上述语句也适用于<%=[ "\${Alias}" == "" ]=%>的解析。


查看完整回答
反对 回复 2018-07-28
  • 1 回答
  • 0 关注
  • 756 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信