对于我们的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中的变量中删除新行并将其替换为空格?
1条答案
按热度按时间093gszye1#
你的问题是regex在replace中。模式[\n\r]* 匹配零个或多个新行或回车。这可能无法捕获所有新行。
更好的方法是使用replaceAll方法。使用模式,找到所有新行和回车符,并用空格替换它们。下面是如何:
字符串
此模式[\n\r]+查找所有\n或\r并将其替换为空格。这将为您提供带有空格的字符串用于different_command。