如何在詹金斯管道sed命令中转义单引号?

时间:2020-05-06 16:58:47

标签: bash jenkins groovy sed jenkins-pipeline

我似乎无法弄清楚如何在Jenkins管道中编写此代码?

myString.padEnd(myString.length + 1000, "\u00A0")

这是我到目前为止一直在尝试的

sed -i "txt" "s/id 'com.github' ver '1.0'/id 'com.github'/g" file.txt

我有一个包含内容的文件-

sh """sed -i "txt" "s/id \'com.github\'  ver \'1.0\'/id \'com.github\'/g" file.txt"""

我要删除

id 'com.github'  ver '1.0'

来自

ver '1.0'

使用bash命令。我该怎么办?

2 个答案:

答案 0 :(得分:0)

我会改用ed

 printf '%s\n' "s/\(id 'com.github'\)  ver '1.0'/\\1/" wq | ed file.txt

请注意,可以在sed中解决引号问题(您不必转义单引号),但是ed是更标准的标准,并且针对您要执行的操作而设计:在其中编辑文件地方。

答案 1 :(得分:0)

这在Jenkinsfile中对我有用-

script {
      dir('mydir') {
          def command = $/sed -i "s/id 'com.github'  ver '1.0'/id 'com.github'/" ./file.txt/$
          SED_OUT = sh(returnStdout: true, script: command)
      }
    }