1. 程式人生 > >jq: 在Linux通過命令列處理 JSON

jq: 在Linux通過命令列處理 JSON

因為最近要處理一些 JSON 資料格式,所以在經過一番搜尋後 最終找到了 jq 這個很棒的工具。jq 允許你直接在命令 行下對 JSON 進行操作,包括分片、過濾、轉換等等。

讓我們通過幾個例子來說明 jq 的功能:

漂亮列印

如果我們用文字編輯器開啟 JSON,有時候可能看起來會一團 糟,但是通過 jq 的 .(點)過濾器就可以立馬讓 JSON 的格式規整起來。
[code language=”shell”]% jq . soundtag.json[/code]

用文字編輯器開啟後的樣子
jq json

用 jq 顯示的結果
jq json

快速查詢

利用 jq 能夠以 key 作為關鍵字來對 JSON 作出快速查詢, 例如:
[code language=”shell”]% jq .cn soundtag.json[/code]
這將僅僅顯示 cn 鍵對應的值。

jq 的鍵查詢也支援鏈式呼叫,如:
[code language=”shell”]% jq .cn[0].pNum soundtag.json[/code]

管道操作

熟悉命令列的朋友可能都知道 | (管道)是一個非常強大的 武器。幸運的是,jq 也提供了對管道的支援。
[code language=”shell”]% jq ‘.cn[] | { pNum }’ soundTag.json[/code]
在這裡,我們使用管道過濾並構造出 pNum 物件。

總結

如果你需要在命令列下處理 JSON,我強烈推薦 jq。jq 不僅 能夠滿足一般性的常見需求,更包含運算、內建函式、條件比較、 變數宣告、自定函式等強大功能。對此感興趣的朋友,不妨通過

jq 的官方手冊 進行學習。

原文來自: LinuxToy