Shell Jq命令详解

来自:互联网
时间:2021-09-02
阅读:

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
}

待完善~

返回顶部
顶部