<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               將所有輸入讀?。ㄎ。┑綌到M中;應用過濾器;
      -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"
      
      
      主站蜘蛛池模板: 久久久综合九色合综国产| 久久99精品久久久久久综合| 婷婷五月综合色视频| 亚洲国产综合自在线另类| 狠狠色丁香婷婷久久综合 | 色综合久久综精品| 色欲老女人人妻综合网| 伊人久久中文大香线蕉综合| 综合人妻久久一区二区精品| 久久精品桃花综合| 亚洲五月综合缴情在线观看| 色综合天天综合高清网| 亚洲综合视频在线观看| 中文字幕色综合久久| 成人综合在线视频| 开心五月激情综合婷婷| 伊人性伊人情综合网| 国产精品亚洲综合一区| 色综合热无码热国产| 91探花国产综合在线精品| 久久综合九色综合97免费下载| 国产亚洲综合视频| 亚洲精品综合在线影院| 久久久久青草线蕉综合超碰| 亚洲狠狠婷婷综合久久久久| 丁香五月网久久综合| 婷婷六月久久综合丁香可观看 | 久久久久久久综合狠狠综合| 久久综合国产乱子伦精品免费| 亚洲丁香婷婷综合久久| 欧美激情综合亚洲一二区| 制服丝袜人妻综合第一页| 色噜噜狠狠色综合日日| 色妞色综合久久夜夜| 亚洲六月丁香婷婷综合| 狠狠色综合久久婷婷| 婷婷综合激情五月中文字幕| 亚洲伊人久久综合中文成人网| 久久婷婷五月综合97色直播| 狠狠色丁香婷综合久久| 亚洲综合久久一本伊伊区|