Shell指令碼處理JSON資料工具jq

2021-08-08 07:59:05 字數 1559 閱讀 5051

當我們在linux下需要處理json資料時,第一反應是用指令碼編寫乙個工具,這樣即耗時又不通用. 本文將介紹專門的命令列json處理工具jq.

1、安裝:

1)ubuntu使用者可以直接使用下列命令安裝:

$ sudo apt-get install jq
2)採用原始碼安裝:

2、使用:

}, },

}, }]

}

1)解析json:

$ cat test.json | jq '.name'

"中國"

$ cat test.json | jq '.province[0].name'

"黑龍江"

$ cat test.json | jq '.province.name'

"黑龍江"

"廣東"

"台灣"

"新疆"

2)提取字段:

$ cat test.json | jq '.province[0]'

, "name": "黑龍江"

}$ cat test.json | jq '.province'

, "name": "黑龍江"},

"name": "廣東"},

"name": "台灣"},

"name": "新疆"

}$ cat test.json | jq '.province[0] | '

, "name": "黑龍江"

}$ cat test.json | jq '.province[0] | '

3)內建函式keys:

$ cat test.json | jq 'keys'

[ "name",

"province"

]$ cat test.json | jq '.|keys'

[ "name",

"province"

]$ cat test.json | jq '.province[0]|keys'

[ "cities",

"name"

]$ cat test.json | jq '.province|keys'

[ "cities",

"name"][

"cities",

"name"][

"cities",

"name"][

"cities",

"name"

]

4)內建函式has:

$ cat test.json | jq 'has("name")'

true

$ cat test.json | jq '.province[0] | has("name")'

true

$ cat test.json | jq 'has("noname")'

false

參考:

工作指令碼處理文字shell

簡單的使用shell,而且平時學習一下,如果不動手寫的話,真是完全沒有啥用啊,所以,還是寫出來的。把下邊的指令碼 貼出來。怕忘記了。涉及到資料庫連線,awk使用,日期函式,字串模糊匹配。plain view plain copy bin bash dir date date y m d d 1 da...

shell常用的指令碼處理命令

1 cut echo path cut d f 5 d 以 為分隔字元 f fields 選取第幾段 export cut c 12 13 c 字元範圍,即以字元為單位在每一行中切出一部分 2 grep grep acinv color auto 查詢字串 filename c 計算查詢 字串 的個...

shell指令碼處理字串常用方法

一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...