【发布时间】:2018-01-04 18:00:20
【问题描述】:
Groovy 代码是:
def cmd = "sed -i \'1 i <?xml version=\"1.1\"?>\' test.xml"
println cmd
println cmd.execute().err.text
输出:
sed -i '1 i <?xml version="1.1"?>' test.xml
sed: -e expression #1, char 1: unknown command: `''
这是在 cli 中运行良好的实际命令 sed -i '1 i <?xml version="1.1"?>' test.xml。但是 Groovy execute() 不能正常工作。如何解决这个问题?
更新 1:
也尝试使用下面的cmd,但仍然显示相同的错误。
def cmd = /sed -i '1 i <?xml version="1.1"?>' test.xml/
def cmd = "sed -i '1 i <?xml version=\"1.1\"?>' test.xml"
更新说明:
要检查和更新 xml 文件,
def insertversion(String filename)
{
def lines= new File (filename).readLines()
if(!(lines.get(0)).contains('xml version'))
{
def cmd = ['sed', '-i', '1 i <?xml version="1.1"?>', filename]
cmd.execute()
}
}
【问题讨论】: