linux 命令之jq
jq命令允许直接在命令行下对JSON进行操作,包括分片、过滤、转换等
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集
JSON 数据的书写格式是: 名称/对象。
JSON的结构基于两点
“名称/值”的集合 ,在不同的语言中,它可以被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等 .
值的有序列表 多数语言中被理解为数组(array)
JSON的基础结构说明
对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。
值可以是字符串,数字,逻辑值,数组,对象,null。
数字:整数或浮点数
字符串:在双引号中
逻辑符:true和false
数组:在方括号中
对象:在花括号中
null: 代表空
Ubuntu下的jq安装
apt-get install jq
1
jq命令的格式
jq [options] filter [files]
**options:**
--version:输出jq的版本信息并退出
--slurp/-s:读入整个输入流到一个数组。
--raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。
--null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。
--compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。
--colour-output / -C:打开颜色显示
--monochrome-output / -M:关闭颜色显示
--ascii-output /-a:指定输出格式为ASCII
-raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)
**filter:**
. : 默认输出
.foo: 输出指定属性,foo代表属性。
.[foo] :输出指定数组元素。foo代表数组下标。
.[]:输出指定数组中全部元素
, :指定多个属性作为过滤条件时,用逗号分隔
| : 将指定的数组元素中的某个属性作为过滤条件
**files:**
JOSN格式文件。
用作示例的JOSN文件。
[{"hostCompany":"Beijing Autelan Technology","hostModel":"CS-VIC-2000-C","hostsn":"01010730b12014A00477","mac":"00:1F:64:CE:F3:8E","cpuModel":"MIPS 74Kc V4.12","cpuSN":"000000","memoryModel":"abcdefg","memorySN":"000000","boardSN":"01010730b12014A00477","networkCardMac":"00:1F:64:CE:F3:8F","lowFreModel":"AR9344","lowFreSN":"000000","hignFreModel":"AR9582","hignFreSN":"000000","gpsModel":"abcdefg","gpsSN":"000000","MEID_3g":"A000004E123ABD2","Company_3g":"ZTEMT INCORPORATED","modelOf3g":"MC271X","snOf3g":"A000004E123ABD2","iccid":"89860314400200885980","Operators":"CTCC","hardVersion":"1.20","firmwareVersion":"1.0.6.29"}]
1
示例:
$ jq . apinfo.json
[
{
"firmwareVersion": "1.0.6.29",
"hardVersion": "1.20",
"Operators": "CTCC",
"iccid": "DATA DATA",
"snOf3g": "A000004E123ABD2",
"modelOf3g": "MC271X",
"Company_3g": "ZTEMT INCORPORATED",
"MEID_3g": "A000004E123ABD2",
"memorySN": "000000",
"memoryModel": "abcdefg",
"cpuSN": "000000",
"cpuModel": "MIPS 74Kc V4.12",
"mac": "00:1F:64:CE:F3:8E",
"hostsn": "01010730b12014A00477",
"hostModel": "CS-VIC-1999-C",
"stCompany": "Beijing Autelan Technology",
"boardSN": "01010730b12014A00477",
"networkCardMac": "00:1F:64:CE:F3:8F",
"lowFreModel": "AR9344",
"lowFreSN": "000000",
"hignFreModel": "AR9582",
"hignFreSN": "000000",
"gpsModel": "abcdefg",
"gpsSN": "000000"
}
]
jq .[] apinfo.json
{
"firmwareVersion": "1.0.6.29",
"hardVersion": "1.20",
"Operators": "CTCC",
"iccid": "DATA DATA",
"snOf3g": "A000004E123ABD2",
"modelOf3g": "MC271X",
"Company_3g": "ZTEMT INCORPORATED",
"MEID_3g": "A000004E123ABD2",
"memorySN": "000000",
"memoryModel": "abcdefg",
"cpuSN": "000000",
"cpuModel": "MIPS 74Kc V4.12",
"mac": "00:1F:64:CE:F3:8E",
"hostsn": "01010730b12014A00477",
"hostModel": "CS-VIC-1999-C",
"stCompany": "Beijing Autelan Technology",
"boardSN": "01010730b12014A00477",
"networkCardMac": "00:1F:64:CE:F3:8F",
"lowFreModel": "AR9344",
"lowFreSN": "000000",
"hignFreModel": "AR9582",
"hignFreSN": "000000",
"gpsModel": "abcdefg",
"gpsSN": "000000"
}
$ jq -r .[].mac apinfo.json
00:1F:64:CE:F3:8E
$ jq -r '.[] | .mac' apinfo.json
00:1F:64:CE:F3:8E
$ jq -r '.[] |.mac, .gpsSN' apinfo.json
00:1F:64:CE:F3:8E
000000
jq -r '.[].mac, .[].gpsSN' apinfo.json
00:1F:64:CE:F3:8E
000000
————————————————
版权声明:本文为CSDN博主「linux_zhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011641885/article/details/45559031
linux 命令之jq相关推荐
- linux命令下jq的用法(curl 格式化输出json 字符串)
文章目录 一.什么是jq命令 1. jq安装 2. jq命令的格式 从json文件 对象数组中取出一组特定的属性的值 从json文件 对象数组中取出一组特定的属性的值,并排除null值 格式化输出js ...
- linux命令下jq的用法简介
jq简介 jq可以对json数据进行分片.过滤.映射和转换,和sed.awk.grep等命令一样,都可以让你轻松地把玩文本.它能轻松地把你拥有的数据转换成你期望的格式,而且需要写的程序通常也比你期望的 ...
- Linux 命令之 jq
文章目录 一.命令解析 二.命令安装 三.命令语法 四.命令使用 一.命令解析 jq 命令允许直接在命令行下对 JSON 进行操作,包括分片.过滤.转换等.有点类似于 Lambda 表达式的 St ...
- linux命令之jq
概述 jq是一个解析json的命令行工具. 用法 美化 $ echo '{"name": "test", "age": 33}' | jq ...
- jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国
我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...
- Linux杂谈之jq命令
一 JSON (1)什么是json 1) JSON 是最常用的'配置'和'数据交换'格式之一,一种与'开发语言无关-->独立于语言的文本格式'的.'轻量级'的数据存储格式,全称JavaScr ...
- 实用!五款新型 Linux 命令行工具
使用新的替代工具来改进旧的命令行工具. 作者 | Ricardo Gerardi 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 在Linux/Unix系统 ...
- Linux下安装jq
Linux下安装jq 查看是否有jq安装包 yum list| grep jq 若有,直接安装jq yum -y install jq 直接在命令行输入:jq,然后回车,看到以下信息说明安装完毕 jq
- Linux命令行使用总结
必读 范围: 这是为 Linux 写的.绝大部分条目都可以同样应用到 MacOS(或者甚至 Cygwin). 主要针对交互式 Bash,尽管大多数小窍门也可以应用到其它 shell,以及常规 Bash ...
最新文章
- 记一次@ResponseBody注解不生效问题
- HarmonyOS之组件通用的XML属性总览
- javascript 原生得到document.Element的方法
- 《textanalytics》课程简单总结(1):两种word relations——Paradigmatic vs. Syntagmatic...
- MATLAB的Kmeans函数实现聚类
- Java框架篇---spring aop两种配置方式
- 输入URL经历的过程
- ubuntu14.04下python2.7推荐系统Crab搭建
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_6、SpringBoot2.xHTTP请求配置讲解...
- PC电脑版微信聊天记录迁移方法
- 贪心算法3: 会议安排
- U盘格式化后容量变小了怎么恢复教程
- NVIDIA针对大规模数据分析和机器学习推出RAPIDS开源GPU加速平台!
- Hunger Snake3
- 一、针对工业领域线圈小目标检测,基于Yolov5s网络改进检测头实验及其检测效果对比
- 浮点运算单元FPU能给电机控制带来什么?
- [转]山寨手机初用者攻略
- TRIZ系列-创新原理-16-部分或超额行动原理
- 爱彼迎超赞房东分享打造五星好评民宿的七个运营秘诀
- 参考文献管理软件Jabref和Zotero使用笔记
热门文章
- 长度厘米转换c语言程序,标准长度单位换算c程序设计.doc
- 云计算奇妙学习之旅第一期:初识云计算
- 【Unity】Unity 欧拉角、四元数、万向节死锁、四元数转轴角
- android之网络状态判断(wifi和移动网络数据)
- 最新百亿量化私募名单
- ZYNQ之路--搞清楚Xilinx开发软件之间的关系
- 数据流图、数据流程图、程序流程图的区别与联系
- 南京师范大学计算机专业考研分数,南京师范大学2021考研分数线已公布
- matlab 图片 并行,图片尺寸批量resize的matlab并行代码
- 北航计算机学院博士开题,关于硕士生、博士生开题报告的通知及规定-北航电子信息工程学院...