Bash:
使用YAML工作

如何操作:

在 Bash 中直接操作 YAML 需要一点创造性,因为 Bash 没有内置支持解析 YAML。然而,你可以使用外部工具,如 yq(一个轻量级且便携的命令行 YAML 处理器),来高效地与 YAML 文件交互。让我们通过一些常见操作:

安装 yq

在深入示例之前,请确保你已安装 yq。你通常可以通过包管理器安装它,例如,在 Ubuntu 上:

sudo apt-get install yq

或者你可以直接从其 GitHub 仓库下载它。

读取值:

假设你有一个名为 config.yaml 的文件,内容如下:

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secret

要读取数据库主机,你可以如下使用 yq

yq e '.database.host' config.yaml

示例输出:

localhost

更新值:

要在 config.yaml 中更新用户的名称,使用带 -i(就地)选项的 yq eval 命令:

yq e '.user.name = "newadmin"' -i config.yaml

用以下命令验证更改:

yq e '.user.name' config.yaml

示例输出:

newadmin

添加新元素:

要在数据库部分下添加一个新字段 timeout

yq e '.database.timeout = 30' -i config.yaml

检查文件内容将确认添加。

删除元素:

要移除用户下的密码:

yq e 'del(.user.password)' -i config.yaml

此操作将从配置中删除密码字段。

记住,yq 是一款强大的工具,具有更多功能,包括将 YAML 转换为 JSON、合并文件,甚至更复杂的操作。请参考 yq 文档以进一步探索。