linux - 在 YAML 文件中的特定字符串之后传递变量值

标签 linux bash awk sed yaml

我有一个 Yaml 格式的文件(如下所述)。

值.yml

replicaCount: 2
strategy: 
  type: RollingUpdate
  rollingUpdate:
     maxSurge: 1
     maxUnavailable: 1
minReadySeconds: 5
nodeSelector:
       role: nginxplus
image:
  repository: 2xxxxxxxxxxx6.dkr.ecr.us-east-1.amazonaws.com/miqp-devops
  tag: foo
  pullPolicy: IfNotPresent

现在我想用另一个值替换键标签。该值来自变量。

例如,

 VAR=bar
 echo $VAR
 bar

我想要一些可以编辑我的values.yml 文件并替换的东西

标签:foo 到标签:bar

谢谢

最佳答案

sed方法:

var="bar"
sed -i "s/^\([[:space:]]*tag:[[:space:]]*\).*/\1$var/" values.yml

最终的values.yml内容:

replicaCount: 2
strategy: 
  type: RollingUpdate
  rollingUpdate:
     maxSurge: 1
     maxUnavailable: 1
minReadySeconds: 5
nodeSelector:
       role: nginxplus
image:
  repository: 2xxxxxxxxxxx6.dkr.ecr.us-east-1.amazonaws.com/miqp-devops
  tag: bar
  pullPolicy: IfNotPresent

关于linux - 在 YAML 文件中的特定字符串之后传递变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645448/

相关文章:

linux - Git fatal error : cannot simplify commit

bash - kubectl apply-ing时替换所有文件中的环境变量

bash - 是否有更好的解决方案来反转 uniq 计数

linux - 从巨大的 txt.gz 文件中选择/复制包含字符串的行的最快方法

python - 按条件合并具有不同列信息的文件

linux - 复制服务器的全部内容

linux - 我应该使用 none/nodev/debugfs 中的哪一个来挂载 debugfs?

linux - 即使设置了 setuid 位并提供了 o+rx 后也无法以所有者权限运行脚本

linux - 使用命令行输入参数

csv - 用包含字符串的定界符将 csv 文件中的列值替换为 (g)awk