一、背景
我有两个yml文件t1.yml和t2.yml,需要对它们取并集,如果有相同的值则使用t2.yml中的
t1.yml
redis:
ip: 192.168.1.2
port: 6379
#数据库
database:
type: mysql #数据库类型,可选mysql和Oracle
ip: 192.168.1.3 #数据库IP地址
port: 3306 #数据库端口
t2.yml
git:
- project: https://192.168.2.2/devops.git
subDir: devops #检出到子目录,必填项
database:
ip: 192.168.1.4
user: devops
password: devops
二、下载yq工具
yq2.4.0注意:
高版本不支持下面的操作,建议下载2.4.0版本
三、进行合并
chmod +x yq_linux_amd64
./yq_linux_amd64 m -i t2.yml t1.yml #合并后的结果保存到t2.yml
cat t2.yml
可以看到,数据库的IP会用t2.yml里面的192.168.1.4
四、注意事项
合并后yml文件的顺序会发生变化、注释会被删掉