如何使用bash命令更改yaml文件中的值?

时间:2020-04-15 14:10:01

标签: bash yaml yq

我有这个yaml文件:

id:
  providerName: admin
  apiName: LagerAPI
  version: 1.0.0
uuid: 1297c3e5-24aa-4806-be05-0cc3f2decaff
type: HTTP
context: /wso/1.0.0
contextTemplate: /wso/{version}
tags: []
documents: []
lastUpdated: Apr 14, 2020 4:33:37 PM

想要将其在 context: contextTemplate:行中的值 wso 更改为 test ,以便结果将是:

id:
  providerName: admin
  apiName: LagerAPI
  version: 1.0.0
uuid: 1297c3e5-24aa-4806-be05-0cc3f2decaff
type: HTTP
context: /test/1.0.0
contextTemplate: /test/{version}
tags: []
documents: []
lastUpdated: Apr 14, 2020 4:33:37 PM

如何使用 bash命令来做到这一点?

谢谢:)

2 个答案:

答案 0 :(得分:0)

我找到了解决方法:

sed -i 's/wso/test/' file.yaml

答案 1 :(得分:0)

以防万一该文件中有更多wso的情况,这应该替换预期的内容。

sed '/^context/s/wso/test/;/^contextTemplate/s/wso/test/' file.yml