Linux 中的 JQ 命令使用例項
JSON 是一種資料表示格式,用於在應用程式的不同層之間儲存和傳輸資料;它將資料儲存在鍵:值對中。在文章中,我們將學習使用 JQ 在 中操作和處理 JSON 資料。 |
在
8中使用下面命令安裝
jq
:
[root@localhost ~]# dnf -y install jq
現在我們可以開始使用 JQ 命令,因為它已經成功安裝在我們的系統上,但首先,讓我們看一下 JQ 命令的語法:
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
JQ 命令可以用多種不同的方式使用;它可以直接用於 JSON 檔案,也可以結合其他幾個命令來解釋 JSON 資料。JQ 命令可以與不同的過濾器一起使用,例如“.”、“|”、“,”或“.[]”過濾器來組織 JSON 資料。
JQ 命令還採用不同的選項作為引數,例如 --tab、--stream、--indent n、--unbuffered 和 -L 目錄選項。JQ 命令的語法乍一看可能很複雜,但閱讀整篇文章後您就會熟悉它。
JQ 命令過濾器最簡單和常用的特性。它們用於在將 JSON 資料列印到標準輸出時對其進行組織和美化。
在這個例子中,我們有一個名為 employee.json 的 JSON 檔案,我們需要將資料輸出到標準輸出:
{"workers":{"name": "John Brooks","id": "003"}}
我們可以使用 cat 命令來顯示資料:
[root@localhost ~]# cat employee.json {"workers":{"name": "John Brooks","id": "003"}}
使用 cat 命令列印到標準輸出的資料是無組織和混亂的。我們可以使用 JQ 命令和“.”來組織這些資料,使用
.
來篩選:
[root@localhost ~]# jq '.' employee.json { "workers": { "name": "John Brooks", "id": "003" } }
現在,資料變得更有條理、色彩豐富且更易於理解。從 API 訪問資料時尤其需要此過濾器;API 中儲存的資料可能非常無組織且令人困惑。
.欄位
過濾器和 JQ 命令可用於訪問 shell 中的物件屬性。
如果我們只想訪問單個屬性並將其列印到標準輸出,那麼我們可以使用
.欄位
運算子。例如,要訪問工人的屬性,我們可以使用以下命令:
[root@localhost ~]# jq '.workers' employee.json { "name": "John Brooks", "id": "003" }
我們還可以使用
.欄位
運算子訪問屬性中存在的專案。要訪問工人屬性中的名稱項,我們將使用:
[root@localhost ~]# jq '.workers.name' employee.json "John Brooks"
我們還可以使用
.[]
運算子訪問和輸出 JSON 檔案中陣列中存在的元素。對於這個例子,我們將修改我們的 JSON 檔案,新增下面內容:
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
檢視一下employee.json檔案:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
要輸出 JSON 檔案中存在的所有陣列,我們將執行以下命令:
[root@localhost ~]# jq '.[]' employee.json { "name": "John Brooks", "id": "003" } { "name": "Randy Park", "id": "053" } { "name": "Todd Gray", "id": "009" }
要僅輸出第二個陣列,我們可以透過以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json { "name": "Randy Park", "id": "053" }
請記住,陣列從索引 0 開始的。
我們還可以使用
.欄位
運算子訪問陣列中存在的屬性。例如,如果我們想訪問第三個陣列中的 name 屬性,那麼我們將執行以下命令:
[root@localhost ~]# jq '.[2].name' employee.json "Todd Gray"
類似地,要訪問陣列中的所有名稱屬性,我們可以執行以下命令:
[root@localhost ~]# jq '.[].name' employee.json "John Brooks" "Randy Park" "Todd Gray"
JQ 命令用於將 JSON 資料轉換為更易讀的格式並將其列印到 上的標準輸出。JQ 命令是圍繞過濾器構建的,過濾器用於從 JSON 檔案中僅查詢和列印所需的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2892891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux中ip命令的使用例項Linux
- Linux 中 ss 命令的使用例項Linux
- Linux中的basename命令使用例項Linux
- Linux中printf命令使用例項Linux
- Linux系統中的basename命令使用例項Linux
- Linux中head命令例項Linux
- 【Linux】jq 命令介紹和使用Linux
- Linux中的15個‘echo’ 命令例項Linux
- Linux命令:grep命令AND、OR、NOT例項Linux
- cut命令的使用例項
- Linux系統中head命令例項Linux
- Tee命令使用例項
- awk命令使用例項
- Linux系統抓包命令tcpdump使用例項LinuxTCP
- linux命令下jq的用法簡介Linux
- restorecon 命令使用例項REST
- netstat命令使用例項
- Tee命令的幾個使用例項
- 15個Linux Grep命令使用例項(實用、常用)Linux
- Linux中介紹who命令例項Linux
- Linux 中命令連結操作符的十個最佳例項Linux
- Linux系統中的lsmod、lsof、lspci、lsscsi命令及例項Linux
- Linux 的”sort”命令的七個有趣例項Linux
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- linux下命令列json工具:jqLinux命令列JSON
- Filter在Vue,JS,JQ中的使用FilterVueJS
- jq+css+html打造下拉導航選單例項CSSHTML單例
- Linux 中grep命令中 -P選項的作用Linux
- Linux 中的 fork() 函式例項解析Linux函式
- linux中sleep詳解例項Linux
- Linux-中-rsync-備份資料使用例項Linux
- vue例項中watch屬性的使用Vue
- linux下find,xargs命令詳解和例項Linux
- Linux iostat命令詳解和使用例項(磁碟操作監控工具)LinuxiOS
- jq命令用法總結
- 例項詳解 Linux 中的 fork() 函式Linux函式
- nmap命令常用例項