数据处理Skill data-processing

这是一个用于高效处理结构化数据(如JSON、YAML、TOML)的命令行技能。它通过jq和yq工具,支持数据查询、过滤、转换和提取,适用于配置管理、API响应解析、DevOps工作流和数据分析等场景。关键词:数据处理,JSON,YAML,TOML,jq,yq,命令行工具,数据过滤,配置解析,DevOps。

DevOps 0 次安装 0 次浏览 更新于 2/28/2026

name: 数据处理 描述: “使用 jq 处理 JSON,使用 yq 处理 YAML/TOML。高效地过滤、转换、查询结构化数据。触发条件:解析 JSON、从 YAML 提取、查询配置、Docker Compose、K8s 清单、GitHub Actions 工作流、package.json、过滤数据。” 兼容性: “需要 jq 和 yq CLI 工具。安装:brew install jq yq (macOS)。” 允许工具: “Bash Read”

数据处理

从命令行高效地查询、过滤和转换结构化数据(JSON、YAML、TOML)。

工具

工具 命令 用途
jq jq '.key' file.json JSON 处理
yq yq '.key' file.yaml YAML/TOML 处理

jq 基础

# 提取单个字段
jq '.name' package.json

# 提取嵌套字段
jq '.scripts.build' package.json

# 从数组提取
jq '.dependencies[0]' package.json

# 提取多个字段
jq '{name, version}' package.json

# 深度导航
jq '.data.users[0].profile.email' response.json

# 按条件过滤
jq '.users[] | select(.active == true)' data.json

# 转换每个元素
jq '.users | map({id, name})' data.json

# 统计元素数量
jq '.users | length' data.json

# 原始字符串输出
jq -r '.name' package.json

yq 基础

# 提取字段
yq '.name' config.yaml

# 提取嵌套字段
yq '.services.web.image' docker-compose.yml

# 列出所有键
yq 'keys' config.yaml

# 列出所有服务名称(Docker Compose)
yq '.services | keys' docker-compose.yml

# 获取容器镜像(K8s)
yq '.spec.template.spec.containers[].image' deployment.yaml

# 更新值(原地)
yq -i '.version = "2.0.0"' config.yaml

# TOML 转 JSON
yq -p toml -o json '.' config.toml

快速参考

任务 jq yq
获取字段 jq '.key' yq '.key'
数组元素 jq '.[0]' yq '.[0]'
过滤数组 jq '.[] | select(.x)' yq '.[] | select(.x)'
转换 jq 'map(.x)' yq 'map(.x)'
计数 jq 'length' yq 'length'
jq 'keys' yq 'keys'
美化输出 jq '.' yq '.'
紧凑输出 jq -c yq -o json -I0
原始输出 jq -r yq -r
原地编辑 - yq -i

使用场景

  • 读取 package.json 依赖项
  • 解析 Docker Compose 配置
  • 分析 Kubernetes 清单
  • 处理 GitHub Actions 工作流
  • 从 API 响应中提取数据
  • 过滤大型 JSON 数据集
  • 配置文件操作
  • 数据格式转换

额外资源

如需完整模式库,请加载:

  • ./references/jq-patterns.md - 数组、过滤、转换、聚合、输出格式化
  • ./references/yq-patterns.md - Docker Compose、K8s、GitHub Actions、TOML、YAML 修改
  • ./references/config-files.md - package.json、tsconfig、eslint/prettier 模式