yq 是一个轻量级和便携式的命令行 YAML、JSON 和 XML 处理器。yq 使用类似于 jq 的语法,但可以处理 yaml、json、xml、properties、csv 和 tsv 文件。它目前还不支持 jq 支持的所有功能,但它支持最常见的操作和函数,并且还在不断添加更多功能。以下将讲解如何在Ceotos安装yq。
yq官方源码地址:
https://github.com/mikefarah/yq
yq官方下载地址:
https://github.com/mikefarah/yq/releases/tag/v4.33.2
下载yq_linux_amd64
yq安装步骤
1
2
3
4
|
chmod 744 yq_linux_amd64
mv yq_linux_amd64 /usr/bin/
ln -s /usr/bin/yq_linux_amd64 /usr/bin/yq
yq -V
|
yq的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#直接读取
yq '.a.b[0].c' file.yaml
#输入流管道读取
yq '.a.b[0].c' < file.yaml
#cat读取,并打印key、value
cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "key: \(.key), value: \(.value)"'
#cat读取,并打印docker run的-e
cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "-e \(.key)=\"\(.value)\""'
#cat读取,并打印docker run的-e换行
cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "-e \(.key)=\(.value | @sh)"' | tr '\n' ' '
#cat读取,并打印docker run的--add-host
cat app-config-host.yaml | yq -o=json .data | jq -r 'to_entries[] | "--add-host='\''\(.key):\(.value)'\''"' | tr '\n' ' '
|