如果字段存在,则使用 yq 来增加值

using yq to Increment value if field exists

我有以下 yaml 文件:

name: myapp
app1:
  version: 1.2
  replicas: 1
app2:
  version: 2.3
  replicas: 1
app3:
  version: 4.0
app4:
  version: 2.4

我想使用 yq 来递增每个副本字段的值,因此结果为:

name: myapp
app1:
  version: 1.2
  replicas: 2
app2:
  version: 2.3
  replicas: 2
app3:
  version: 4.0
app4:
  version: 2.4

有什么想法吗?

使用 selecthas 检查字段是否存在,并 += 更新它:

使用mikefarah/yq

yq '(.[] | select(has("replicas")).replicas) += 1'

使用kislyuk/yq

yq -y '(.[] | select(has("replicas")?).replicas) += 1'