我有一个Jenkins管道,我需要在文件上运行sed
,但出现line 2: syntax error: unexpected ")"
错误
我的文件是这个:-
name=""
age=""
我的詹金斯sh行是:
"""sed -i -e 's|(name *= *")"|\1${params.NAME}"|g' -e 's|(age *= *")"|\1${params.AGE}"|g' vars.txt"""
我可以在我的shell上正常运行sed
并且可以运行,但是Jenkins由于某些原因不喜欢它。
如果通过Jenkins Pipeline语法生成器运行它,则会收到相同的错误。
答案 0 :(得分:0)
您正在使用BRE POSIX模式,并且要在此处创建捕获组,需要使用转义括号\(...\)
。但是,在三引号括起来的字符串文字中,您需要转义反斜杠以在结果字符串中获取文字反斜杠。
您需要像这样修复行:
'''sed -i' ' -e 's|\\(name *= *"\\)"|\\1'"${params.NAME}"'"|g' -e 's|\\(age *= *"\\)"|\\1'"${params.AGE}"'"|g' vars.txt'''