今天要講的是如何使用linux的jq命令處理json內容。
可能有人會問明明一堆程式語言與圖形介面工具可以做到同樣的事,為什麼硬要使用cli指令來處理JSON
sudo apt install jq
來安裝jq是一個輕量級的命令行工具,可以用來處理JSON格式的數據
'.<key[nth]>'
獲取JSON中的第<nth>個相對應key的值
.key[]
則是獲取所有相對應key的值.key[a,b,c,d,...]
指定多個index或使用.key[start:end]
指定index範圍$ jq '.' file
## 也等價於"以jq將json格式化輸出"
$ cat file | jq
$ cat file| jq '.nested.key[nth]'
## 也可以使用方括號指定key
$ cat file| jq '.["nested"]["key"]'
$ cat file | jq '.key = value'
jq --arg name value
## 將json[amogus]的值設為sus
cat file| jq --arg amogus sus '.amogus=$amogus'
## 將json[nested]的值設為另一個json檔案
cat file | jq --argjson nested "$(< anotherJson)" '.nested=$value'
## 注意: "$(<anotherJson)"本身是shell指令
## 其將anotherfile的內容讀入stdin後再傳給jq進行處理
## 將json[anotherFile]的值設為anotherFile的內容
jq的基本使用就先介紹到這邊,有興趣的可以參考以下連結或jq的官網
jq 實戰教學 - MyApollo
[Linux] jq 指令:好用又輕量的 JSON 工具 – OneJar 的隧道
jq使用外部文件作为--arg参数值 - 简书