Linux 中 json 格式化工具 jq
阿新 • • 發佈:2022-05-26
安裝
jq屬於epel源,所以需要安裝epel
[root@master kubernetes]# yum install -y epel-release
安裝工具
[root@master kubernetes]# yum install -y jq
測試使用
測試資料
[root@master ~]# vim test { "name":"Tom", "age":18, "gender":"male", "phone":["110"], "speciality":null } { "name":"Jerry", "age":16, "gender":"female", "phone":null,"speciality":["eat","sleep"] }
使用方法
1、普通轉換:相當於解析根節點 "."
[root@master ~]# jq < test { "name": "Tom", "age": 18, "gender": "male", "phone": [ "110" ], "speciality": null } { "name": "Jerry", "age": 16, "gender": "female", "phone": null, "speciality": [ "eat","sleep" ] }
也可以寫根節點
[root@master ~]# jq . < test { "name": "Tom", "age": 18, "gender": "male", "phone": [ "110" ], "speciality": null } { "name": "Jerry", "age": 16, "gender": "female", "phone": null, "speciality": [ "eat", "sleep" ] }
2、解析屬性
[root@master ~]# jq .age < test18 16
[root@master ~]# jq .name < test "Tom" "Jerry"
3、解析多個屬性
[root@master ~]# jq '[.name,.age,.speciality]' < test [ "Tom", 18, [ "sleep", "read" ] ] [ "Jerry", 16, [ "eat", "sleep" ] ]
4、測試解析列表索引
修改測試資料
[root@master ~]# vim test { "name":"Tom", "age":18, "gender":"male", "phone":["110"], "speciality":["sleep","read"] } { "name":"Jerry", "age":16, "gender":"female", "phone":null, "speciality":["eat","sleep"] }
解析
[root@master ~]# jq '.speciality[0]' < test "sleep" "eat" [root@master ~]# jq '.speciality[1]' < test "read" "sleep"
負索引解析
[root@master ~]# jq '.speciality[-1]' < test "read" "sleep"
5、使用製表符處理結果資料
[root@master ~]# jq '[.name,.age,.speciality[0]] | @tsv' < test "Tom\t18\tsleep" "Jerry\t16\teat"
可以去除製表符
[root@master ~]# jq '[.name,.age,.speciality[0]] | @tsv' < test|sed 's/\\t/,/g' "Tom,18,sleep" "Jerry,16,eat"