成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 中的 JQ 命令使用實例

系統 Linux
JSON 是一種數據表示格式,用于在應用程序的不同層之間存儲和傳輸數據;它將數據存儲在鍵:值對中。在文章中,我們將學習使用 JQ 命令在shell 中操作和處理 JSON 數據。

JSON 是一種數據表示格式,用于在應用程序的不同層之間存儲和傳輸數據;它將數據存儲在鍵:值對中。在文章中,我們將學習使用 JQ 命令在shell 中操作和處理 JSON 數據。

如何安裝JQ命令

在Centos8中使用下面命令安裝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 數據

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 命令訪問屬性

.字段過濾器和 JQ 命令可用于訪問 shell 中的對象屬性。

如果我們只想訪問單個屬性并將其打印到標準輸出,那么我們可以使用.字段運算符。例如,要訪問工人的屬性,我們可以使用以下命令:

[root@localhost ~]# jq '.workers' employee.json  
{
"name": "John Brooks",
"id": "003"
}

我們還可以使用.字段運算符訪問屬性中存在的項目。要訪問工人屬性中的名稱項,我們將使用:

[root@localhost ~]# jq '.workers.name' employee.json  
"John Brooks"

如何使用 JQ 命令訪問數組項

我們還可以使用 .[] 運算符訪問和輸出 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 數據轉換為更易讀的格式并將其打印到 Linux 上的標準輸出。JQ 命令是圍繞過濾器構建的,過濾器用于從 JSON 文件中僅查找和打印所需的數據。

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2022-02-15 07:26:31

Ncat工具Linux

2023-08-08 00:11:57

命令行工具查詢

2021-01-04 05:43:59

LinuxBasename命令

2010-06-22 13:23:18

Linux at命令詳

2009-08-03 10:12:37

find命令詳解find命令linux

2009-08-16 20:11:50

linux中talk命talk命令參數linux命令行參數

2021-05-31 11:30:43

Linuxsource命令

2023-10-09 07:33:50

Linuxls 命令

2021-05-16 08:22:19

Linux命令 Source

2009-08-17 08:42:48

LinuxScreen命令使用技巧

2022-10-13 20:09:32

userdelLinux

2010-06-22 10:28:04

linux at命令

2012-05-11 10:10:47

Linuxgrep

2021-08-02 13:38:21

Linuxalias命令

2020-12-07 06:42:09

LinuxIP命令

2021-06-09 08:05:02

Linux 備份數據

2021-06-18 10:28:56

Linuxrsync命令

2021-06-07 08:04:39

Restorecon命令安全

2010-10-26 10:02:05

oracle備份命令

2019-10-27 22:47:30

Linux命令lsmod
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清美女一级a毛片久久w | 视频一区二区三区中文字幕 | 欧美一区二区在线观看 | 免费视频99 | 日韩欧美在线视频 | 亚洲国产欧美日韩 | 天天色天天 | 九色.com| 国产一区二区不卡 | 亚洲一区视频在线 | 免费在线播放黄色 | 国产午夜精品久久久久免费视高清 | 欧美一区二区在线看 | 中文字幕1区2区3区 日韩在线视频免费观看 | 中文无吗 | 亚洲精品一区二区三区蜜桃久 | 亚洲成人精品 | 成人一区av | 国产精品一区二区视频 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | av官网在线 | 亚洲日韩中文字幕一区 | 亚洲免费人成在线视频观看 | 国产成人精品午夜 | 欧美日韩国产精品一区二区 | 中文字字幕一区二区三区四区五区 | 99精品视频免费观看 | 久草福利| 亚洲一区二区免费看 | 精品久 | 香蕉av免费 | 99国产精品久久久久 | 99久久精品视频免费 | 三级黄视频在线观看 | 欧美专区在线 | 欧美a区 | 91久久国产精品 | 狠狠操你| 久久国产精99精产国高潮 | 精品国产18久久久久久二百 | 伊人久久成人 |