0

我想用 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
4

2 回答 2

1

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

echo 'This {$is} a test to replace a tag' | sed 's/{$is}/was/g'
于 2013-05-29T15:04:34.347 回答
1

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

于 2013-05-29T15:08:12.037 回答