最后更新于

CentOS安装yq


yq是一个轻量级且便携的命令行工具 🛠️,专门用于处理YAML、JSON和XML文件。它使用类似于jq的语法,支持yaml、json、xml、properties、csv和tsv等多种文件格式。

主要特点:

  • 📝 支持多种数据格式
  • 🔧 类似jq的语法
  • ⚡ 轻量级且高效
  • 🔄 持续更新功能

📥 下载yq

官方源码: https://github.com/mikefarah/yq

下载地址: https://github.com/mikefarah/yq/releases

选择适合的版本,下载 yq_linux_amd64 文件。

🚀 安装步骤

# 添加执行权限
chmod 744 yq_linux_amd64

# 移动到系统目录
mv yq_linux_amd64 /usr/bin/

# 创建软链接
ln -s /usr/bin/yq_linux_amd64 /usr/bin/yq

# 验证安装
yq -V

📖 使用示例

基本读取操作

直接读取文件:

yq '.a.b[0].c' file.yaml

管道读取:

yq '.a.b[0].c' < file.yaml

高级用法示例

读取并打印键值对:

cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "key: \(.key), value: \(.value)"'

生成Docker环境变量:

cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "-e \(.key)=\"\(.value)\""'

生成Docker环境变量(单行):

cat app-config-env.yaml | yq -o=json .data | jq -r 'to_entries[] | "-e \(.key)=\(.value | @sh)"' | tr '\n' ' '

生成Docker主机映射:

cat app-config-host.yaml | yq -o=json .data | jq -r 'to_entries[] | "--add-host='\''\(.key):\(.value)'\''"' | tr '\n' ' '

💡 提示: yq可以与jq结合使用,实现更复杂的数据处理需求。建议先熟悉基本语法,再尝试复杂操作。