无法使用变量在 jenkins 管道中的字符串匹配后替换行

jdo*_*ool 5 sed jenkins jenkins-pipeline

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

文件.txt --

...
url : http://www.google.com
..
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Thi*_*iru 8

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

def text = readFile "file.txt"
text.replaceAll("url.*", "url: ${FACEBOOK_URL}")
Run Code Online (Sandbox Code Playgroud)

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


Seb*_*eck 6

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

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