Linux Jq, json文本文件处理工具

linux-jq

一、工具介绍:jq是一个json文本文件处理工具

二、解决问题:一个写在一行的json文件,如果很大时(百兆)打开浏览时会比较卡,并且vim查看也不太方便,这时可以用jq,直接将格式化后的json保存下来,同时也有一些很便捷的使用方法(1L,19602630C)

三、安装方式

Linux:apt-get install jq
Mac:brew install jq

四、官方命令行执行方式:jq [options] filter [files]

options说明:

–version:输出jq的版本信息并退出
-s:读入整个输入流到一个数组。
-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。
-n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。
-c:使输出紧凑,而不是把每一个JSON对象输出在一行。
-C:打开颜色显示
-M:关闭颜色显示
-a:指定输出格式为ASCII
-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)

filter说明:

. : 默认输出
.foo: 输出指定属性,foo代表属性
.[foo] :输出指定数组元素。foo代表数组下标
.[]:输出指定数组中全部元素
, :指定多个属性作为过滤条件时,用逗号分隔
| : 将指定的数组元素中的某个属性作为过滤条件
files说明:
JOSN格式文件

五、使用实例展示

【label.json】可以作为联系对象,点击下载,是一个写在一行的大json文件,注意:后续实例均以Linux操作系统为例

1、快速格式化json文件并保存(只快速浏览不用重定向)

Linux:cat label.json | jq . > label_format.json
Mac:cat label.json | jq > label_format.json

2、通过key获取value,这里注意:一定要在key前加英文句号,若获取多个key,用逗号间隔,如cat tmp |jq ‘.a, .c’

cat label.json |jq ‘.error_message’

error_message是key,截图里返回的是对应的value内容,

3、通过多层key,获取嵌套层级中的value(如果想获取字符串,加-r参数)

cat label.json | jq ‘.error_message.task_id’

先获取error_message的value,然后再获取里面task_id这个key的值

4、获取所有key,注意,这里’keys‘前不能有英文句号

cat label.json | jq ‘keys’

5、删除某个key生成新的json

cat label.json | jq ‘del(.true_message)’ > tmp

6、更新某个key的值

cat label.json | jq ‘.true_message=“aaa”’

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值