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

发布于 2022-09-07 19:34:02 字数 448 浏览 24 评论 0

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

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

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

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

或者

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

轻许诺言 2022-09-14 19:34:02

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文