如何用正则表达式替换smarty标签

时间:2013-05-29 14:58:58

标签: regex command-line sed smarty

我想用SED替换smarty标签,但我无法克服这个问题

这是我到目前为止所做的:

echo "This {$is} a test to replace a tag" | sed -e 's/\\{\$is\\}/was/g'

这是上一个命令的结果:

This {} a test to replace a tag

这就是我实际想要归档{$ tags}的简单替换

This was a test to replace a tag

2 个答案:

答案 0 :(得分:1)

使用简单引用(双引号$is被替换为bash变量$ is的内容,即''):

echo 'This {$is} a test to replace a tag' | sed 's/{$is}/was/g'

答案 1 :(得分:1)

可能你正在使用bash看到$is并尝试将其替换为变量。如果将字符串括在单引号中,则将其视为文字。此外,您已经为正则表达式添加了一大堆额外的转义。 echo 'This {$is} a test to replace a tag' | sed -e 's/{$is}/was/'将返回您的期望。