用Groovy and Sed命令替换字符串



我试图替换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

这应该为您提供包含您希望运行的命令的字符串。请注意,我如何更改字符串中的特殊字符逃脱(),以反映字符串定界符的更改。

旁语言?

最新更新