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
wget https://github.com/mikefarah/yq/releases/download/v4.33.2/yq_linux_amd64.tar.gz
安装步骤
chmod 744 yq_linux_amd64
mv yq_linux_amd64 /usr/bin/
ln -s /usr/bin/yq_linux_amd64 /usr/bin/yq
yq -V
yq的使用
#直接读取
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' ' '
标签:Centos,jq,value,cat,yaml,key,yq,安装
From: https://www.cnblogs.com/wangcc7/p/17749570.html