国产成人精品999视频&日本一区二区亚洲人妻精品&久久久精品国产99久久精&99热这里只有成人精品国产&精品国产剧情av一区二区&成人亚洲精品久久久久app&国产精品美女高潮抽搐A片

jq 備忘清單

這個(gè)快速參考備忘單提供了使用 jq 命令的各種方法。

入門

介紹

jq 就像用于 JSON 數(shù)據(jù)的 sed - 您可以使用它來切片、過濾、映射和轉(zhuǎn)換結(jié)構(gòu)化數(shù)據(jù)

安裝

$ sudo apt-get install jq # Debian& Ubuntu
$ sudo dnf install jq     # Fedora 
$ sudo zypper install jq  # openSUSE
$ sudo pacman -S jq    # Arch
$ brew install jq      # macOS & Homebrew
$ port install jq      # macOS & MacPorts

語法

$ jq [options] <jq filter> [file...]
$ jq [options] --args <jq filter> [strings...]
$ jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

選項(xiàng)

:--
-c緊湊而不是漂亮的輸出
-n使用null作為單個(gè)輸入值
-e根據(jù)輸出設(shè)置退出狀態(tài)代碼
-s將所有輸入讀?。ㄎ。┑綌?shù)組中;應(yīng)用過濾器
-r輸出原始字符串,而不是JSON文本
-R讀取原始字符串,而不是JSON文本
-C為 JSON 著色
-M單色(不要為JSON著色)
-S在輸出上排序?qū)ο蟮逆I
--tab使用制表符進(jìn)行縮進(jìn)
--arg a v將變量 $a 設(shè)置為 value <v>
--argjson a v將變量 $a 設(shè)置為 JSON value <v>
--slurpfile a f將變量 $a 設(shè)置為從<f>讀取的JSON文本數(shù)組
--rawfile a f將變量 $a 設(shè)置為包含<f>內(nèi)容的字符串
--args其余參數(shù)是字符串參數(shù),而不是文件
--jsonargs其余的參數(shù)是JSON參數(shù),而不是文件
--終止參數(shù)處理

學(xué)習(xí)示例

獲取一個(gè)鍵的值

$ echo '{"foo": 42, "bar": "less interesting data"}' | jq '.foo'

輸出結(jié)果

42

數(shù)組運(yùn)算

$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[1]'

輸出結(jié)果

{
  "name": "XML",
  "good": false
}

構(gòu)造一個(gè)數(shù)組/對(duì)象

$ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' | jq '{user, title: .titles[]}'

輸出結(jié)果

{
  "user": "stedolan",
  "title": "JQ Primer"
}
{
  "user": "stedolan",
  "title": "More JQ"
}

計(jì)算一個(gè)值的長(zhǎng)度

$ echo '[[1,2], "string", {"a":2}, null]' | jq '.[] | length'              

輸出結(jié)果

2
6
1
0

取出數(shù)組中的鍵

$ echo '{"abc": 1, "abcd": 2, "Foo": 3}' | jq 'keys'              

輸出結(jié)果

[
  "Foo",
  "abc",
  "abcd"
]

使用多個(gè)過濾器

$ echo '{ "foo": 42, "bar": "something else", "baz": true}' | jq '.foo, .bar' 

輸出結(jié)果

42
"something else"

管道傳遞給下一個(gè)過濾器

$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[] | .name'     

輸出結(jié)果

"JSON"
"XML"

條件語句判斷

$ echo '[1,5,3,0,7]' | jq 'map(select(. >= 2))'        

輸出結(jié)果

[
  5,
  3,
  7
]

每個(gè)輸入調(diào)用過濾器

$ echo '[1,2,3]' | jq 'map(.+1)'

輸出結(jié)果

[
  2,
  3,
  4
]

條件判斷

$ echo '2' | jq 'if . == 0 then "zero" elif . == 1 then "one" else "many" end'

輸出結(jié)果

"many"

字符串插入值并進(jìn)行運(yùn)算

$ echo '42' | jq '"The input was \(.), which is one less than \(.+1)"'

輸出結(jié)果

"The input was 42, which is one less than 43"

字符串轉(zhuǎn) JSON 數(shù)組

$ echo 'a b c d' | jq -R 'split(" ")'

輸出結(jié)果

[
  "a",
  "b",
  "c",
  "d"
]

更改發(fā)布注冊(cè)表

echo "$(jq '.publishConfig.registry = "https://npm.pkg.github.com"' package.json)" > package.json

將組織范圍添加到包名稱

echo "$(jq '.name = "@scope/package"' package.json)" > package.json

另見