我试图替换XML文件中包含的整个描述字符串。我想用变量替换该字符串。我正在使用一个Groovy脚本中使用SED命令。
我有以下代码。我期望字符串" foo"替换描述文本,但事实并非如此。相反,以下行导致XML更改为: description =" sdescription"
我在做什么错?
def sDescription = "foo"
def sedCommand = 'sed -i 's/Description="[^"]*"/Description="'$sDescription'"/g' package.appxmanifest' as String
在弦变量/表达式替换(插值)内部仅适用于某些类型的字符串文字语法。单引号语法('content'
)不是其中之一。但是,如果您用双引号("content"
)替换了外部引号,则应获得您正在寻找的插值效果:
def sDescription = "foo"
def sedCommand = "sed -i 's/Description="[^"]*"/Description="$sDescription"/g' package.appxmanifest" as String
这应该为您提供包含您希望运行的命令的字符串。请注意,我如何更改字符串中的特殊字符逃脱(),以反映字符串定界符的更改。
旁语言?