shell jq命令,解析 json 文件

发布时间 2023-08-23 17:53:57作者: 悟透

全局

cat t.json

{
    "env_AB":{
      "DB_PATH":"/bin/data",
      "DB_NAME":"aa.db",
      "RULE_DB":[
          {
		"RULE_DB_1":"bb_rules1.db",
		 "RULE_DB_2":"bb_rules2.db",
		 "RULE_DB_3":"bb_rules3.db",
		 "RULE_DB_4":"bb_rules4.db"
          }
       ]
    }
}

一、参数说明

-r: 去掉结果中的 " 双引号
-c: 在一行显示


二、函数说明

length: 统计键(值)总数
type: 获取元素类型


三、示例

1、显示所有值

1)以方便阅读形式显示

cat t.json | jq

image


2)一行显示值

cat t.json | jq  -c

image


2、获取主键(keys)

cat t.json | jq  'keys'

image


3、获取子键(keys)

cat t.json | jq ".env_AB| keys"

image


4、获取子键(keys) ,去掉 [] 方括号

cat t.json | jq ".env_AB| keys[] "

image


5.显示所有子值(value)

cat t.json | jq '.env_AB[]'

image


cat t.json | jq '.env_AB'

image


6、去掉所有值 的双引号

cat t.json | jq -r .env_AB[]

image


7、统计键值总数

cat t.json | jq  length

image


cat t.json | jq ".env_AB | length"

image


8、获取指定键的值

cat t.json | jq ".env_AB.DB_PATH"

image


9、获取元素类型

cat t.json | jq ".env_AB| type"

image


10、取 [] 方括号中的值


image


3、






参考、来源:
https://www.jianshu.com/p/98b1b3ce2e29