用sed语法替换包含以下行的yaml(qa.yaml)文件中的文本是什么。
image: "1xxxxxxxxxx.dkr.ecr.eu-west-2.amazonaws.com/abc-zyx-123/prod:a.b.c"
image2: "1xxxxxxxxxx.dkr.ecr.eu-west-2.amazonaws.com/abc-zyx-456/prod:1.2.3.4"
现在我要在docker构建期间从yaml文件替换最新版本,即“ 1.2.3”和“ 2.3.4”。我从詹金斯(Jenkins)获取参数值。因此,假设第一个参数是 image ,第二个参数是 image2
我本来可以做,但是这个a.b.c可能会改变,那么这种情况下最好的reg表达式是什么?
RUN sed -i -e "s@\a.b.c/$image" /qa.yaml
感谢您的帮助
答案 0 :(得分:1)
使用
dfs =[df1,df2,df3,df4,df5,df6,df7]
df8 = reduce(DataFrame.unionAll, dfs)
它将用sed -i "s@[^:][^:]*\$@$image" /qa.yaml
变量中不应包含image
字符的文本替换字符串末尾的冒号以外的一个或多个字符。如果存在,请将@
替换为@
或#
或~
,只需确保,
中没有这样的字符即可。>