在詹金斯管道中使用变量进行字符串匹配后无法替换行

时间:2018-10-23 14:38:38

标签: jenkins sed jenkins-pipeline

我需要替换文件中的一行。如果该行以“ url”开头,则需要替换该值。

file.txt-

...
url : http://www.google.com
..

我需要将此值更改为 网址:http://www.facebook.com

我尝试了以下代码,但没有用-

FACEBOOK_URL = "http://www.facebook.com"
sh("sed -i \\"s?^url.*\\$?url: ${FACEBOOK_URL}?\\" file.txt")

我正在使用Jenkins管道。我需要使用变量替换字符串。

2 个答案:

答案 0 :(得分:2)

您可以使用它来替换Jenkins 2 Pipeline版本中文件中的字符串:

def text = readFile file: "file.txt"
text = text.replaceAll("%version%", "${VERSION}")
writeFile file: "file.txt", text: text

答案 1 :(得分:0)

Jenkins 2 Pipeline构建使用Groovy,使用readfile读取文件非常容易,然后我们就可以进行更改

openDate

上面的代码将有助于替换文件中的文本,如果要将内容写到文件中,可以使用writeFile