您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux jq命令怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux jq命令怎么用”吧!
一個靈活的輕量級命令行JSON處理器
jq 是 stedolan 開發的一個輕量級的和靈活的命令行JSON處理器,源碼請參考
jq 用于處理JSON輸入,將給定過濾器應用于其JSON文本輸入并在標準輸出上將過濾器的結果生成為JSON。
最簡單的過濾器是.
,它將jq的輸入未經修改地復制到其輸出中(格式設置除外)。
請注意,jq 當前僅支持64位雙精度浮點數(IEEE754)。
# Debian系,如 Ubuntu sudo apt-get install jq # RedHat系, 如 CentOS yum install jq
jq [options][file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
-c 緊湊而不是漂亮的輸出; -n 使用`null`作為單個輸入值; -e 根據輸出設置退出狀態代碼; -s 將所有輸入讀取(吸取)到數組中;應用過濾器; -r 輸出原始字符串,而不是JSON文本; -R 讀取原始字符串,而不是JSON文本; -C 為JSON著色; -M 單色(不要為JSON著色); -S 在輸出上排序對象的鍵; --tab 使用制表符進行縮進; --arg a v 將變量$a設置為value; --argjson a v 將變量$a設置為JSON value; --slurpfile a f 將變量$a設置為從讀取的JSON文本數組; --rawfile a f 將變量$a設置為包含內容的字符串; --args 其余參數是字符串參數,而不是文件; --jsonargs 其余的參數是JSON參數,而不是文件; -- 終止參數處理;
.
: 以漂亮的方式輸出
$ echo '{ "foo": { "bar": { "baz": 123 } } }' | jq '.' { "foo": { "bar": { "baz": 123 } } }
.foo, .foo.bar, .foo?
: 獲取一個鍵的值
$ echo '{"foo": 42, "bar": "less interesting data"}' | jq '.foo' 42
.[], .[]?, .[2], .[10:15]
: 數組運算
$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[1]' { "name": "XML", "good": false }
[], {}
: 構造一個數組/對象
$ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' | jq '{user, title: .titles[]}' { "user": "stedolan", "title": "JQ Primer" } { "user": "stedolan", "title": "More JQ" }
length
: 計算一個值的長度
$ echo '[[1,2], "string", {"a":2}, null]' | jq '.[] | length' 2 6 1 0
keys
: 取出數組中的鍵
$ echo '{"abc": 1, "abcd": 2, "Foo": 3}' | jq 'keys' [ "Foo", "abc", "abcd" ]
,
: 使用多個過濾器
$ echo '{ "foo": 42, "bar": "something else", "baz": true}' | jq '.foo, .bar' 42 "something else"
|
: 通過管道將一個過濾器的輸出當做下一個過濾器的輸入
$ echo '[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]' | jq '.[] | .name' "JSON" "XML"
select(foo)
: 如果foo返回true,則輸入保持不變
$ echo '[1,5,3,0,7]' | jq 'map(select(. >= 2))' [ 5, 3, 7 ]
map(foo)
: 每個輸入調用過濾器
$ echo '[1,2,3]' | jq 'map(.+1)' [ 2, 3, 4 ]
if-then-else-end
: 條件判斷
$ echo '2' | jq 'if . == 0 then "zero" elif . == 1 then "one" else "many" end' "many"
\(foo)
: 在字符串中插入值并進行運算
$ echo '42' | jq '"The input was \(.), which is one less than \(.+1)"' "The input was 42, which is one less than 43"
到此,相信大家對“Linux jq命令怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。