Linux jq 命令

Linux jq 命令,第1张

概述IBM 官方 jq 文档:https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html?ca=drs-&utm_source=tuicool&utm_medium=referraljq命令允许直接在命令行下对JSON进行 *** 作,包括分片、过滤、转换等 JSON(JavaScript Object Notat

IBM 官方 jq 文档:https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html?ca=drs-&utm_source=tuicool&utm_medium=referral


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格式文件。 
123456789101112131415161718192021222324

用作示例的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","gpsSN": "000000"} 
2425262728293031323334353637383940414243444546474849505152535455565758
$ 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:8E000000jq -r '.[].mac,.[].gpsSN' APInfo.Json 00:1F:64:CE:F3:8E000000
总结

以上是内存溢出为你收集整理的Linux jq 命令全部内容,希望文章能够帮你解决Linux jq 命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/1014006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存