<span id="vexk9"><table id="vexk9"></table></span>

      jq

      一個靈活的輕量級命令行JSON處理器

      補充說明

      jq 是 stedolan 開發的一個輕量級的和靈活的命令行JSON處理器,源碼請參考 jq 項目主頁

      jq 用于處理JSON輸入,將給定過濾器應用于其JSON文本輸入并在標準輸出上將過濾器的結果生成為JSON。

      最簡單的過濾器是.,它將jq的輸入未經修改地復制到其輸出中(格式設置除外)。

      請注意,jq 當前僅支持64位雙精度浮點數(IEEE754)。

      安裝

      # Debian系,如 Ubuntu
      sudo apt-get install jq
      
      # RedHat系, 如 CentOS
      yum install jq
      

      語法

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

      選項

      -c               緊湊而不是漂亮的輸出;
      -n               使用`null`作為單個輸入值;
      -e               根據輸出設置退出狀態代碼;
      -s               將所有輸入讀取(吸取)到數組中;應用過濾器;
      -r               輸出原始字符串,而不是JSON文本;
      -R               讀取原始字符串,而不是JSON文本;
      -C               為JSON著色;
      -M               單色(不要為JSON著色);
      -S               在輸出上排序對象的鍵;
      --tab            使用制表符進行縮進;
      --arg a v        將變量$a設置為value<v>;
      --argjson a v    將變量$a設置為JSON value<v>;
      --slurpfile a f  將變量$a設置為從<f>讀取的JSON文本數組;
      --rawfile a f    將變量$a設置為包含<f>內容的字符串;
      --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"
      
      
      主站蜘蛛池模板: 亚洲色欲久久久综合网| 九月婷婷亚洲综合在线| 久久久久久久综合日本亚洲| 国内精品综合久久久40p| 亚洲国产综合精品| 国产香蕉尹人综合在线观看| 狠狠色婷婷久久综合频道日韩| 色88久久久久高潮综合影院| 色噜噜久久综合伊人一本| 国产在线五月综合婷婷| 国产成人综合久久| 激情五月激情综合| 亚洲另类激情综合偷自拍| 一本色道久久综合一区| 成人综合久久精品色婷婷| 91亚洲精品第一综合不卡播放| 五月丁香六月综合av| 色天使亚洲综合一区二区| 久久久久久综合网天天| 久久91精品久久91综合| 国产成人麻豆亚洲综合无码精品| 狠狠综合亚洲综合亚洲色 | 98精品国产综合久久| 狠狠狠色丁香婷婷综合久久五月| 狠狠综合久久久久综合网| 国产成人综合久久精品下载| 激情婷婷成人亚洲综合| 色综合热无码热国产| 色婷婷五月综合丁香中文字幕| 天天综合日日噜噜噜| 丁香婷婷激情综合俺也去 | 国产亚洲综合久久| 精品无码综合一区| 伊人久久大香线蕉综合7| 日本伊人色综合网| 六月婷婷国产精品综合| 国产成人亚洲综合无| 亚洲狠狠爱综合影院婷婷| 久久精品综合一区二区三区| 伊人久久综合热线大杳蕉下载| 久久婷婷五月综合97色一本一本 |