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 | 静默请求,但仍显示错误。 |