我有大约200个值。yaml文件在多个目录,我需要纠正,如果它是必需的。循环找到文件是一个不是问题,但如何编辑/更新文件没有yq使用bash脚本。
所以bash脚本需要检查values.yaml文件是否包含数组:containers如果有,请添加object imageprefix:“”在imagename下面。但是有时候容器节中的值.yaml已经添加了这样的对象,必须跳过它,并且不重复。
我的yaml文件看起来像
service:
path: /
ports:
- port: 6055
containers:
container1:
name: service
org: "company:"
imagename: thirdparty-service
tagprefix: "-"
volumes:
- name: pod-logs
emptyDir: {}
envMap:
env:
N_PERROUTE: 20
NUM_STREAM_THREADS_CONFIG: 10
NUM_STREAM_T
输出
service:
path: /
ports:
- port: 6055
containers:
container1:
name: service
org: "company:"
imagename: thirdparty-service
imageprefix: ""
tagprefix: "-"
periodSeconds: 30
volumes:
- name: pod-logs
emptyDir: {}
envMap:
env:
N_PERROUTE: 20
NUM_STREAM_THREADS_CONFIG: 10
NUM_STREAM_T
2条答案
按热度按时间ktecyv1j1#
你可以用awk来做:
script.awk
awk -f script.awk input.yml
tagprefix: "-"
行,它将添加两次periodSeconds行。这个解决方案不验证yaml层次结构。jq6vz3qz2#
Bash + sed: