千家信息网

Linux jq命令怎么用

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本篇内容主要讲解"Linux jq命令怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux jq命令怎么用"吧!Linux常用命令jq命令一个灵
千家信息网最后更新 2025年11月14日Linux jq命令怎么用

本篇内容主要讲解"Linux jq命令怎么用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Linux jq命令怎么用"吧!

Linux常用命令jq命令一个灵活的轻量级命令行JSON处理器。

jq

一个灵活的轻量级命令行JSON处理器

补充说明

jq 是 stedolan 开发的一个轻量级的和灵活的命令行JSON处理器,源码请参考 jq 项目主页

jq 用于处理JSON输入,将给定过滤器应用于其JSON文本输入并在标准输出上将过滤器的结果生成为JSON。

最简单的过滤器是.,它将jq的输入未经修改地复制到其输出中(格式设置除外)。

请注意,jq 当前仅支持64位双精度浮点数(IEEE754)。

安装

 # Debian系,如 Ubuntu sudo apt-get install jq  # RedHat系, 如 CentOS yum install jq

语法

 jq [options][file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]

选项

 -c               紧凑而不是漂亮的输出; -n               使用`null`作为单个输入值; -e               根据输出设置退出状态代码; -s               将所有输入读取(吸取)到数组中;应用过滤器; -r               输出原始字符串,而不是JSON文本; -R               读取原始字符串,而不是JSON文本; -C               为JSON着色; -M               单色(不要为JSON着色); -S               在输出上排序对象的键; --tab            使用制表符进行缩进; --arg a v        将变量$a设置为value; --argjson a v    将变量$a设置为JSON value; --slurpfile a f  将变量$a设置为从读取的JSON文本数组; --rawfile a f    将变量$a设置为包含内容的字符串; --args           其余参数是字符串参数,而不是文件; --jsonargs       其余的参数是JSON参数,而不是文件; --               终止参数处理;

例子

.: 以漂亮的方式输出

 $ echo '{ "foo": { "bar": { "baz": 123 } } }' | jq '.' {   "foo": {     "bar": {       "baz": 123     }   } }

.foo, .foo.bar, .foo?: 获取一个键的值

 $ echo '{"foo": 42, "bar": "less interesting data"}' | jq '.foo' 42

.[], .[]?, .[2], .[10:15]: 数组运算

 $ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[1]' {   "name": "XML",   "good": false }

[], {}: 构造一个数组/对象

 $ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' | jq '{user, title: .titles[]}'  {   "user": "stedolan",   "title": "JQ Primer" } {   "user": "stedolan",   "title": "More JQ" }

length: 计算一个值的长度

 $ echo '[[1,2], "string", {"a":2}, null]' | jq '.[] | length'                                   2 6 1 0

keys: 取出数组中的键

$ echo '{"abc": 1, "abcd": 2, "Foo": 3}' | jq 'keys'                                        [  "Foo",  "abc",  "abcd"]

,: 使用多个过滤器

$ echo '{ "foo": 42, "bar": "something else", "baz": true}' | jq '.foo, .bar' 42"something else"

|: 通过管道将一个过滤器的输出当做下一个过滤器的输入

$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[] | .name'                                                 "JSON""XML"

select(foo): 如果foo返回true,则输入保持不变

$ echo '[1,5,3,0,7]' | jq 'map(select(. >= 2))'                                                    [  5,  3,  7]

map(foo): 每个输入调用过滤器

$ echo '[1,2,3]' | jq 'map(.+1)'[  2,  3,  4]

if-then-else-end: 条件判断

 $ echo '2' | jq 'if . == 0 then "zero" elif . == 1 then "one" else "many" end'"many"

\(foo): 在字符串中插入值并进行运算

$ echo '42' | jq '"The input was \(.), which is one less than \(.+1)"'          "The input was 42, which is one less than 43"

到此,相信大家对"Linux jq命令怎么用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

命令 过滤器 输入 输出 参数 字符 字符串 数组 处理 变量 文本 内容 处理器 轻量 轻量级 原始 漂亮 对象 文件 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中文网络数据库与生活 铁锈战争服务器怎么取名字 orcle数据库的那个小锁 经济会议关于网络安全 数据库有多个主键 美版苹果会用贵州服务器么 网络技术维护 软件开发职业情景模拟 软件开发类公司属于什么行业 如何提高数据库并发量 网络安全技能专长 网络安全信息教学设计 2019年网络安全检查报告 浙江搭建存储服务器 手游服务器多久开启100级 网信工作 网络安全 获取的是服务器站点的根目录 上位机软件开发出差后有补休吗 服务器多网卡路由配置 数据库锁表会影响前台查询吗 怎么查服务器访问速度 信息网络安全应急演练评估 c怎样连接mysql数据库 药学信息数据库的结构由什么组成 网络服务器和微机有何区别 nas能用网页服务器吗 解析服务器 账号未登录 网站建设服务器托管策划公司 中学网络技术知识点 计算机网络技术可以做老师吗
0