bash shell 实现读写yaml脚本工具
时间: 2023-09-13 08:05:56
浏览: 161
### 回答1:
在bash [shell](https://geek.csdn.net/educolumn/63319ef3ba749171baca9071e5d1024f?spm=1055.2569.3001.10083)中[读写](https://geek.csdn.net/educolumn/1e4a90ddf8efac6c1c24c59859bbb66b?spm=1055.2569.3001.10083)YAML文件可以使用yq和jq这两个工具。其中,yq是一个基于Python的YAML处理工具,而jq是一个基于C[语言](https://geek.csdn.net/educolumn/05c8de7581a582e6d46821757663ed30?spm=1055.2569.3001.10083)的JSON处理工具,但它也支持YAML格式。
以下是一个使用yq和jq来[读写](https://geek.csdn.net/educolumn/1e4a90ddf8efac6c1c24c59859bbb66b?spm=1055.2569.3001.10083)YAML文件的bash[脚本](https://geek.csdn.net/educolumn/093b3e5243538c1a64b04def9c71bb94?spm=1055.2569.3001.10083)示例:
```bash
#!/bin/bash
# 读取yaml文件中的数据
name=$(yq r config.yaml name)
age=$(yq r config.yaml age)
echo "name: $name, age: $age"
# 修改yaml文件中的数据
yq w -i config.yaml name "new_name"
yq w -i config.yaml age 20
# 读取修改后的yaml文件中的数据
name=$(yq r config.yaml name)
age=$(yq r config.yaml age)
echo "name: $name, age: $age"
# 将yaml文件转换为json格式
jq '.' config.yaml > config.json
```