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

Linux jq 命令講解與實戰操作

系統 Linux
jq 是一個強大的命令行工具,用于處理 JSON 格式的數據。它可以幫助你查詢、過濾、修改和處理 JSON 數據,使得在命令行環境下處理 JSON 變得非常方便。

一、概述

jq 是一個強大的命令行工具,用于處理 JSON 格式的數據。它可以幫助你查詢、過濾、修改和處理 JSON 數據,使得在命令行環境下處理 JSON 變得非常方便。

圖片圖片

GitHub 地址:https://github.com/stedolan/jqjq 官方網站: https://stedolan.github.io/jq/

二、jq 命令安裝

yum install epel-release
yum install -y jq

三、jq 命令語法與示例詳解

jq 命令有很多參數和選項,可以幫助你處理和轉換 JSON 數據。以下是一些常用的 jq 命令參數和選項:

1)基本用法

jq [options] [filter] [file]
  • options: 可選參數,用于指定 jq 的選項。
  • filter: 必需參數,用于指定 JSON 數據的查詢和轉換操作。
  • file: 可選參數,要處理的 JSON 數據文件。

2)常用選項

  • -r: 輸出原始格式,而不是 JSON 編碼。
  • -c: 輸出時將結果按行分隔。
  • -s: 將輸入視為多個 JSON 對象,用于處理多個 JSON 對象的數組。

3)查詢和過濾

  • .: 表示當前對象,用于訪問字段或屬性。
  • .fieldName: 選擇指定字段的值。
  • []: 用于遍歷數組元素。
  • select(condition): 根據條件選擇元素。
  • map(transform): 對數組中的每個元素應用轉換操作。

當使用 jq 進行查詢和過濾 JSON 數據時,你可以根據需要執行各種操作。以下是一些常見的查詢和過濾示例,假設我們有以下 JSON 數據:

[
  {
    "name": "Alice",
    "age": 25,
    "city": "New York"
  },
  {
    "name": "Bob",
    "age": 30,
    "city": "Los Angeles"
  },
  {
    "name": "Charlie",
    "age": 22,
    "city": "Chicago"
  }
]

1、選擇字段

查詢并選擇所有人的姓名:

cat data.json | jq '.[].name'

輸出:

"Alice"
"Bob"
"Charlie"

2、過濾

選擇年齡大于 25 歲的人的姓名和城市:

cat data.json | jq '.[] | select(.age > 25) | .name, .city'

輸出:

"Bob"
"Los Angeles"

3、遍歷數組

遍歷并輸出所有人的年齡:

cat data.json | jq '.[] | .age'

輸出:

25
30
22

4、組合操作

選擇年齡在 25 到 30 歲之間的人的姓名和城市,并按照姓名排序:

cat data.json | jq '.[] | select(.age >= 25 and .age <= 30) | .name, .city' | sort
"Alice"
"New York"
"Bob"
"Los Angeles"

這些只是一些基本的查詢和過濾示例。jq 支持更多的操作和功能,你可以根據需要進行組合和定制。請根據你的數據和需求來調整和擴展這些示例。

4)修改和創建

  • .fieldName = value: 修改字段的值。
  • del(.fieldName): 刪除指定字段。
  • .newField = value: 創建新的字段。

使用 jq 進行 JSON 數據的修改和創建可以幫助你更新數據或添加新的字段。以下是一些示例,假設我們有以下 JSON 數據:

{
  "name": "Alice",
  "age": 25,
  "city": "New York"
}

1、修改字段值:

修改年齡字段的值為 26:

cat data.json | jq '.age = 26'

輸出:

{
  "name": "Alice",
  "age": 26,
  "city": "New York"
}

2、創建新字段:

添加一個新的字段 country 并設置其值為 "USA":

cat data.json | jq '.country = "USA"'

輸出:

{
  "name": "Alice",
  "age": 25,
  "city": "New York",
  "country": "USA"
}

3、組合操作:

修改年齡字段的值為 26,并添加一個新的字段 country:

cat data.json | jq '.age = 26 | .country = "USA"'

輸出:

{
  "name": "Alice",
  "age": 26,
  "city": "New York",
  "country": "USA"
}

4、條件修改

如果年齡小于 30,則將城市修改為 "Chicago":

cat data.json | jq 'if .age < 30 then .city = "Chicago" else . end'

輸出(由于年齡小于 30,城市被修改):

{
  "name": "Alice",
  "age": 25,
  "city": "Chicago"
}

這些示例演示了如何使用 jq 修改和創建 JSON 數據。你可以根據需要進行組合和調整,以實現你的需求。記住,jq 提供了強大的功能,可以進行更復雜的操作,可以根據文檔和教程進一步學習。

5)運算符

  • +, -, *, /: 數值運算。
  • ==, !=, <, >, <=, >=: 比較運算。
  • and, or, not: 邏輯運算。

jq 支持多種運算符,用于在 JSON 數據中執行數值運算、比較和邏輯操作。以下是一些常見的 jq 運算符示例,假設我們有以下 JSON 數據:

{
  "a": 10,
  "b": 5,
  "c": 15
}

1、數值運算

進行加法、減法、乘法和除法運算:

cat data.json | jq '.a + .b'
cat data.json | jq '.a - .b'
cat data.json | jq '.a * .b'
cat data.json | jq '.a / .b'

輸出:

15
5
50
2

2、比較運算:

比較字段值,返回布爾結果:

cat data.json | jq '.a > .b'
cat data.json | jq '.a >= .c'
cat data.json | jq '.b < .c'

輸出:

true
false
true

3、邏輯運算:

執行邏輯 AND、OR 和 NOT 操作:

cat data.json | jq '.a > 5 and .b < 10'
cat data.json | jq '.a > 15 or .b > 10'
cat data.json | jq 'not (.c > 20)'

輸出:

true
true
false

4、條件運算:

使用 if 和 then 進行條件運算:

cat data.json | jq 'if .a > 10 then "Greater" else "Less or equal" end'

輸出:

"Less or equal"

這些示例展示了 jq 中的一些常見運算符的用法。你可以根據需要進行更復雜的運算和組合操作,以實現你的需求。在處理 JSON 數據時,jq 提供了廣泛的功能來執行各種操作。

6)變量和條件

  • as $variable: 將結果保存到變量中。
  • if condition then ... else ... end: 條件語句。

在 jq 中,你可以使用變量和條件語句來處理和轉換 JSON 數據。以下是一些示例,說明如何在 jq 中使用變量和條件語句,假設我們有以下 JSON 數據:

{
  "name": "Alice",
  "age": 25,
  "city": "New York"
}

1、使用變量:

將字段值存儲到變量中,并在輸出中使用變量:

cat data.json | jq '.age as $age | "Name: \(.name), Age: \($age)"'

輸出:

"Name: Alice, Age: 25"

2、條件語句:

使用 if 和 then 進行條件判斷:

cat data.json | jq 'if .age > 18 then "Adult" else "Minor" end'

輸出:

"Adult"

3、條件判斷和變量組合:

結合條件語句和變量,根據年齡輸出不同的消息:

cat data.json | jq 'if .age > 18 then "Name: \(.name), Status: Adult" else "Name: \(.name), Status: Minor" end'

輸出:

"Name: Alice, Status: Adult"

4、使用條件操作修改數據:

根據年齡字段的值,如果大于 30 則修改城市字段:

cat data.json | jq 'if .age > 30 then .city = "Chicago" else . end'

輸出(由于年齡不大于 30,所以城市字段不變):

{
  "name": "Alice",
  "age": 25,
  "city": "New York"
}

這些示例演示了如何在 jq 中使用變量和條件語句來處理 JSON 數據。你可以根據需要進行組合和定制,以滿足你的需求。jq 提供了強大的功能來處理和轉換 JSON 數據,可以根據文檔和教程進一步學習。

7)函數

jq 支持一些內置函數,如 length, keys, values, tostring 等,用于操作和處理 JSON 數據。

在 jq 中,你可以使用內置的函數來處理和轉換 JSON 數據。以下是一些常見的 jq 函數示例,假設我們有以下 JSON 數據:

{
  "name": "Alice",
  "age": 25,
  "city": "New York",
  "scores": [85, 90, 78, 95]
}

1、length 函數:

獲取數組的長度:

cat data.json | jq '.scores | length'

輸出:

4

2、map 函數:

對數組中的每個元素應用轉換操作:

cat data.json | jq '.scores | map(. * 2)'

輸出:

[170,180,156,190]

3、keys 和 values 函數:

獲取對象的鍵和值:

cat data.json | jq '. | keys'
cat data.json | jq '. | values'

輸出:

["name","age","city","scores"]
["Alice",25,"New York",[85,90,78,95]]

4、to_entries 函數:

將對象轉換為鍵值對數組:

cat data.json | jq '. | to_entries'

輸出:

[
  {"key":"name","value":"Alice"},
  {"key":"age","value":25},
  {"key":"city","value":"New York"},
  {"key":"scores","value":[85,90,78,95]}
]

5、自定義函數:

使用自定義函數進行操作:

cat data.json | jq 'def average: reduce .[] as $item (0; . + $item) / length; .scores | average'

輸出:

87

這些是一些常見的 jq 命令參數和選項,可以幫助你進行 JSON 數據的查詢、過濾、修改和轉換。你可以通過查閱 jq 的官方文檔和教程,深入學習和掌握更多功能和用法。

責任編輯:武曉燕 來源: 大數據與云原生技術分享
相關推薦

2023-01-26 23:59:24

Ansibleplaybook列表

2010-07-01 14:52:42

Linux grep命

2009-12-21 11:22:37

Linux網絡操作命令

2022-12-13 09:01:50

云原生組件數據

2009-12-16 11:28:09

Linux Ubunt

2022-10-10 12:54:00

Flink運維

2022-02-08 12:19:36

LinuxJQ命令

2023-09-27 00:12:23

2023-03-06 07:19:50

2010-01-15 19:37:36

Linux命令

2009-10-19 17:10:37

Linux文件命令

2009-12-14 11:29:19

Linux查看命令

2022-11-08 08:55:31

2023-03-07 07:56:37

Sqoopk8s底層

2022-10-14 07:42:50

LuceneHTTPWeb

2023-03-03 07:54:21

2010-01-06 17:45:47

Linux操作系統

2024-01-08 08:42:43

2010-04-20 12:02:22

Unix操作系統

2023-03-01 07:42:12

HBase編排部署數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清视频一区 | 一区二区三区免费在线观看 | 成人在线视频免费看 | 精品一区二区三区在线观看国产 | 久久久久久久久久影视 | 99久久久久久久久 | 亚洲网站在线观看 | 一区二区三区久久 | 国产女人叫床高潮大片免费 | 久久精品日产第一区二区三区 | 蜜桃视频在线观看免费视频网站www | 免费在线成人 | 九九热在线免费视频 | 中文字幕蜜臀 | 久久综合一区二区 | 四虎成人精品永久免费av九九 | 国产精品久久久久久久久久 | 亚洲精品欧美精品 | 一二三四av| 久久久久久国产精品 | 国产成人精品一区二区三区在线 | 韩日一区二区三区 | 高清国产午夜精品久久久久久 | 亚洲视频免费在线观看 | 欧美视频免费在线 | 免费在线观看av片 | 国产日韩欧美 | 亚洲精选一区二区 | 色综合久久天天综合网 | 日韩精品在线观看网站 | 国产精品久久福利 | xx性欧美肥妇精品久久久久久 | 成人精品国产一区二区4080 | 999在线精品| 天天综合网天天综合色 | 久久久久久av | 国产精品国产精品国产专区不卡 | 一区二区三区高清 | 中文字幕一区二区三区四区五区 | 午夜免费影视 | 亚洲一区二区在线播放 |