當我們在linux下需要處理json資料時,第一反應是用指令碼編寫乙個工具,這樣即耗時又不通用. 本文將介紹專門的命令列json處理工具jq.
ubuntu使用者可以直接使用下列命令安裝:
$ sudo apt-get install jq
詳細的安裝方法可以參考這裡.
首先構建乙個基本的字串作為示例 test.json:
},
}, }, }]}
$ cat test.json | jq '.name'
"中國"
$ cat test.json | jq '.province[0].name'
"黑龍江"
$ cat test.json | jq '.province.name'
"黑龍江"
"廣東"
"台灣"
"新疆"
$ 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] | '
keys用來提取json中的key元素:
$ 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"
]
has用來判斷是否存在某個key:
$ cat test.json | jq 'has("name")'
true
$ cat test.json | jq '.province[0] | has("name")'
true
$ cat test.json | jq 'has("noname")'
false
若json串格式錯誤的話,可以直接使用jq執行,會報出具體錯誤.
有了這個工具.你就可以直接在命令列或者shell指令碼對json資料進行操作了.
- github:answerywj
- blog:
- email:[email protected]
- weibo:@answer不是答案
- csdn:answer不是答案的專欄
本作品採用知識共享署名-相同方式共享 4.0 國際許可協議進行許可。
linux下處理挖礦病毒的過程
症狀 伺服器cpu資源使用一直處於100 的狀態 處理步驟 1.查詢可疑程序 使用top命令,按程序的使用cpu率排序 鍵入top命令後,鍵入大寫字母p 找到程序號,使用kill 9 pid殺死程序,並刪除該程序號對應的檔案 3.檢視定時任務 cat var spool cron root 如果無法...
linux下處理txt中中文亂碼的方法
最近遇到.txt檔案在windows下中文顯示正常,然後我傳入到linux下時,中文顯示亂碼,英文本元和數字顯示正常。如下圖是在windows下的顯示 然而在linux下顯示如下 我已經設定utf 8格式 而在windows下中文的編碼一般為gbk,而linux下中文的編碼一般為utf8,所以在wi...
Oracle Swap居高不下處理
環境描述 system rhe5.3 x86 64bit oracle oracle 11.1.7.0 記憶體 8g 現像 現場運維發郵件回來前端應用緩慢,不時會丟擲異常!分析 通過檢視伺服器程序使用情況發現一些程序使用記憶體相當高,通過vmstat 查詢,系統層面已經大量使用swap交換分割槽了。...