【发布时间】:2022-11-04 08:11:20
【问题描述】:
我必须删除管道日志中两个单词之间的空格。这是管道代码
echo "MyUserName: ${cause.userName}"
在此之后,日志文件中的输出是
MyUserName: [James Perera]
日志文件中的预期输出
MyUserName: [JamesPerera]
这是我尝试过的
echo "MyUserName: ${cause.userName}"
sh """ ${cause.userName} sed 's/ //g' """
然后在日志中输出
MyUserName: [James Perera]
[Pipeline] sh
+ sed 's/ //g' '[James' 'Perera]'
sed: can't read [James: No such file or directory
sed: can't read Perera]: No such file or directory
有人可以帮我解决这个问题吗?提前致谢!
笔记:我想删除两个单词之间的空格的原因是我必须将该值作为一个单词传递给服务器。否则它将在服务器中打印 1 个单词 ( "[James" )
【问题讨论】:
-
我无法遵循 Jenkins 语法,但在命令行中,您希望
sed 's/ //g' <<< $var或echo $var | sed 's/ //g'让 sed 将编辑后的 $var 字符串放在标准输出上。相反,您将字符串的内容作为 sed 的参数放置,sed 期望是名为[James和Perera]的文件 -
我不确定您的 jenkins 系统上正在运行什么 shell,但如果它是 bash 或 ksh 之类的东西,您应该能够做到参数替换并使用
echo "MyUserName: ${cause.userName// /}"。
标签: shell jenkins sed jenkins-pipeline jenkins-groovy