Json文件

对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。
值可以是字符串,数字,逻辑值,数组,对象,null。 数字:整数或浮点数 字符串:在双引号中 逻辑符:true和false
数组:在方括号中 对象:在花括号中 null: 代表空

示范

  • jq “.” 解析全部内容
  • jq “.name,.id” 解析key为name和id的value ,为分隔符,基于当前
一般使用
{"name":"ym68","id":68,"url":"https://www.ym68.cc"}
解析Json格式文件内容
[root@Frpd-vip ~]# jq . a
{
  "name": "ym68",
  "id": 68,
  "url": "https://www.ym68.cc"
}
解析指定key内容
[root@Frpd-vip ~]# jq .name a
"ym68"
[root@Frpd-vip ~]# jq .name,.id a
"ym68"
68
常规
  • jq “.name_list|.[].name,.[].id” 解析指定key值,当有[]时需|进行分割
{"name_list":[{"name":"zhangsan","id":12},{"name":"lisi","id":13}],"id":68,"url":"https://www.ym68.cc"}
[root@Frpd-vip ~]# jq . a
{
  "name_list": [
    {
      "name": "zhangsan",
      "id": 12
    },
    {
      "name": "lisi",
      "id": 13
    }
  ],
  "id": 68,
  "url": "https://www.ym68.cc"
}
[root@Frpd-vip ~]# jq ".name_list|.[].name,.[].id" a
"zhangsan"
"lisi"
12
13
[root@Frpd-vip ~]# jq ".name_list|.[]|.name,.id" a
"zhangsan"
12
"lisi"
13
重新指定输出内容
  • jq “.name_list|.[]|{mingcheng:.name,yonghuid:.id}” 将[]中的内容进行重输出
[root@Frpd-vip ~]# jq ".name_list|.[]|{mingcheng:.name,yonghuid:.id}" a
{
  "mingcheng": "zhangsan",
  "yonghuid": 12
}
{
  "mingcheng": "lisi",
  "yonghuid": 13
}
[root@Frpd-vip ~]# jq ".name_list|.[]|{mingcheng:.name,yonghuid:.id,xinzeng:\"codedd\",xinzen2:12}" a
{
  "mingcheng": "zhangsan",
  "yonghuid": 12,
  "xinzeng": "codedd",
  "xinzen2": 12
}
{
  "mingcheng": "lisi",
  "yonghuid": 13,
  "xinzeng": "codedd",
  "xinzen2": 12
}

搜索匹配指定关键字

select(.name =="张三")

待完善~

END

本文标题:Shell Jq命令详解

本文作者:宇宙最帅的男人

本文链接:https://www.ym68.cc/linux/20211571.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2021 年 06 月 15 日
如果觉得我的文章对你有用,请随意赞赏