关于 jq
使用特定领域的查询语言解析和处理 JSON 数据。支持筛选、映射、聚合和重新格式化结构化数据。
主要功能
- 01使用路径表达式从 JSON 中提取特定字段或嵌套值
- 02使用条件逻辑筛选和转换 JSON 对象和数组
- 03以 JSON、CSV 或原始文本等多种格式输出结果
适用场景
- 01在 Shell 脚本或管道中从 API 响应提取特定数据
- 02解析 JSON 格式的配置文件或日志数据
- 03与其他命令行工具结合来转换和聚合结构化数据
安装
选择你的系统或包管理器,复制命令到终端运行。
$
安装完成后运行jq --version确认安装成功。
命令示例
常用命令按使用顺序排列。
01
02
详细介绍
jq
jq 是一款轻量、灵活的命令行 JSON 处理器,类似于 sed、awk、grep 等工具,但专用于 JSON 数据。它使用可移植的 C 语言编写,没有任何运行时依赖,让你可以轻松切片、筛选、映射和转换结构化数据。
文档
- 官方文档:jqlang.org
- 在线试用 jq:play.jqlang.org
安装
预编译二进制文件
从 GitHub 发布页面下载最新版本。
平台专用文件是独立的可执行文件,而非压缩包。在 macOS 和 Linux 上,
将下载的文件重命名为 jq,并使用 chmod +x jq 将其设为可执行文件。
Docker 镜像
拉取 jq 镜像,即可快速使用 Docker 启动。
使用 Docker 运行
示例:从 package.json 文件中提取版本号
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
示例:从挂载卷中的 package.json 文件提取版本号
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
从源代码构建
依赖项
- libtool
- make
- automake
- autoconf
说明
git submodule update --init # if building from git to get oniguruma
autoreconf -i # if building from git
./configure --with-oniguruma=builtin
make clean # if upgrading from a version previously built from source
make -j8
make check
sudo make install
sudo ldconfig # on Linux, if jq cannot find libjq.so
构建静态链接版本:
make clean
make LDFLAGS=-all-static
如果你使用的不是最新的 git 版本,而是构建已发布的 tarball(可在发布页面获取),请跳过 autoreconf 步骤,也不需要 flex 或 bison。
交叉编译
有关交叉编译的详情,请参阅 GitHub Actions 文件和交叉编译 Wiki 页面。
社区与支持
- 问题与帮助:Stack Overflow(jq 标签)
- 聊天与社区:加入我们的 Discord
- Wiki 与进阶主题:浏览 Wiki
许可证
jq 根据 MIT 许可证发布。jq 的文档采用
Creative Commons CC BY 3.0 许可。
jq 使用了开源 C 库 “decNumber” 的部分代码,该库根据
ICU 许可证发布。
评论
支持 Markdown