Jenkins将多行变量转换为单行

3gtaxfhh  于 5个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(83)

对于我们的jenkins管道,我有一些脚本标记,我们在其中运行命令,我们运行一个返回多行结果的命令:

some_var = sh(returnStdout: true, script:  """some_command""").trim()

字符串
稍后,我想在一个新命令中使用该变量:

sh """different_command -v '${some_var}'"""


然而some_var是一个多行结果,但different_command采用空格分隔的值。我试过:

some_var = some_var.replace("[\n\r]*", "")


但这似乎没有任何作用,我如何从jenkins中的变量中删除新行并将其替换为空格?

093gszye

093gszye1#

你的问题是regex在replace中。模式[\n\r]* 匹配零个或多个新行或回车。这可能无法捕获所有新行。
更好的方法是使用replaceAll方法。使用模式,找到所有新行和回车符,并用空格替换它们。下面是如何:

some_var = some_var.replaceAll("[\n\r]+", " ")

字符串
此模式[\n\r]+查找所有\n或\r并将其替换为空格。这将为您提供带有空格的字符串用于different_command。

相关问题