不使用第三方工具,自己使用bash shell实现读写yaml文件的脚本
时间: 2024-02-05 17:14:26 浏览: 197
在bash shell中,我们可以使用sed和awk等工具来读写yaml文件。以下是一个简单的例子,用于读取和修改yaml文件中的值:
```bash
#!/bin/bash
# 读取yaml文件中的值
function read_yaml {
value=$(cat $1 | awk "/$2:/ {print}" | sed 's/.*: //')
echo $value
}
# 修改yaml文件中的值
function write_yaml {
sed -i "s/\($2:\).*/\1 $3/" $1
}
# 读取yaml文件中的name值
name=$(read_yaml config.yaml name)
echo "name: $name"
# 修改yaml文件中的name值
write_yaml config.yaml name "John Doe"
# 读取修改后的yaml文件中的name值
name=$(read_yaml config.yaml name)
echo "name: $name"
```
在这个例子中,我们定义了两个函数`read_yaml`和`write_yaml`,分别用于读取和修改yaml文件中的值。`read_yaml`函数使用awk和sed命令来查找yaml文件中指定键的值,并返回该值。`write_yaml`函数使用sed命令来修改yaml文件中指定键的值。
在脚本中,我们首先使用`read_yaml`函数读取yaml文件中的name值,并打印出来。然后,我们使用`write_yaml`函数将name值修改为"John Doe"。最后,我们再次使用`read_yaml`函数来读取修改后的yaml文件中的name值,并打印出来。
请注意,这个例子只是一个简单的示例,实际应用中可能需要更复杂的逻辑来处理yaml文件。
阅读全文