jq

名称、版本与用途

  • 名称:jq
  • 当前版本:1.8.1
  • 路径:~/.local/bin/jq
  • 用途:查询、转换、过滤和生成 JSON。

基本语法(Synopsis)

jq [OPTIONS] FILTER [FILE ...]

[] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。

当前安装与更新

当前为从 jq 官方 release 下载的独立 jq-linux-amd64 二进制,不属于 dpkg。

本地安装器对已有版本会跳过。更新时下载官方资产及校验信息,验证后替换 ~/.local/bin/jq。

基本功能与推荐用法

jq . data.json                         # 格式化并校验
jq -r '.name' data.json                # 原始字符串
jq '.items[] | select(.enabled)' data.json
jq -s 'add' part-*.json                # slurp 后合并
jq -n --arg name "$USER" '{user:$name}'
jq 'map(.price) | add' data.json
jq -e '.ok == true' response.json      # 用退出码判断
curl -sS URL | jq '.items[] | .id'

推荐在脚本中使用 -e 检查条件、-r 输出字符串,并使用 --arg 传入 Shell 值,避免手工拼接 JSON。

示例中的选项、参数与子命令

本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。

语法元素含义
-r, --raw-output字符串结果直接输出,不带 JSON 引号。
-s, --slurp把全部输入读成一个数组后再运行过滤器。
-n, --null-input不读取输入,以 null 作为过滤器输入。
--arg NAME VALUE把字符串 VALUE 绑定为 jq 变量 $NAME。
-e, --exit-status根据最后一个输出值设置退出状态。
.恒等过滤器,输出当前值。
.items[]依次输出 items 数组中的元素。
select(EXPR)只保留 EXPR 为真的输入。
map(EXPR)对数组每个元素应用表达式。
add将数组元素相加或合并。
curl -sS静默请求,但仍显示错误。

官方资料