這個(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...]
| :- | - |
|---|---|
-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ù)處理 |
$ echo '{"foo": 42, "bar": "less interesting data"}' | jq '.foo'
輸出結(jié)果
42
$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[1]'
輸出結(jié)果
{
"name": "XML",
"good": false
}
$ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' | jq '{user, title: .titles[]}'
輸出結(jié)果
{
"user": "stedolan",
"title": "JQ Primer"
}
{
"user": "stedolan",
"title": "More JQ"
}
$ echo '[[1,2], "string", {"a":2}, null]' | jq '.[] | length'
輸出結(jié)果
2
6
1
0
$ echo '{"abc": 1, "abcd": 2, "Foo": 3}' | jq 'keys'
輸出結(jié)果
[
"Foo",
"abc",
"abcd"
]
$ echo '{ "foo": 42, "bar": "something else", "baz": true}' | jq '.foo, .bar'
輸出結(jié)果
42
"something else"
$ 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
]
$ 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"
$ echo '42' | jq '"The input was \(.), which is one less than \(.+1)"'
輸出結(jié)果
"The input was 42, which is one less than 43"
$ echo 'a b c d' | jq -R 'split(" ")'
輸出結(jié)果
[
"a",
"b",
"c",
"d"
]
echo "$(jq '.publishConfig.registry = "https://npm.pkg.github.com"' package.json)" > package.json
將組織范圍添加到包名稱
echo "$(jq '.name = "@scope/package"' package.json)" > package.json
感谢您访问我们的网站,您可能还对以下资源感兴趣:
国产成人精品999视频&日本一区二区亚洲人妻精品&久久久精品国产99久久精&99热这里只有成人精品国产&精品国产剧情av一区二区&成人亚洲精品久久久久app&国产精品美女高潮抽搐A片