jq命令,linux
1、jq命令簡介:
jq命令允許直接在命令行下對JSON進行操作,包括分片、過濾、轉換等
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集JSON 數據的書寫格式是: 名稱/對象。JSON的結構基於兩點
“名稱/值”的集合 ,在不同的語言中,它可以被理解為對象(object),記錄(record),結構(struct),字典(dictionary),哈希表(hash table),鍵列表(keyed list)等 .值的有序列表 多數語言中被理解為數組(array)
2、JSON的基礎結構:
對象是屬性、值的集合。一個對象開始與”{” ,結束於”}”。每一個屬性名和值間用”:”分隔。每個屬性間用”,”分隔。
值可以是字符串,數字,邏輯值,數組,對象,null。
數字:整數或浮點數
字符串:在雙引號中
邏輯符:true和false
數組:在方括號中
對象:在花括號中
null: 代表空
Ubuntu下的jq安裝
apt-get install jq
3、jq命令的格式:
jq [options] filter [files]
**options:**
--version:輸出jq的版本信息並退出
--slurp/-s:讀入整個輸入流到一個數組。
--raw-input/-R:不作為JSON解析,將每一行的文本作為字符串輸出到屏幕。
--null-input/ -n:不讀取任何輸入,過濾器運行使用null作為輸入。一般用作從頭構建JSON數據。
--compact-output /-c:使輸出緊湊,而不是把每一個JSON對象輸出在一行。
--colour-output / -C:打開顏色顯示
--monochrome-output / -M:關閉顏色顯示
--ascii-output /-a:指定輸出格式為ASCII
-raw-output /-r :如果過濾的結果是一個字符串,那麼直接寫到標準輸出(去掉字符串的引號)
**filter:**
. : 默認輸出
.foo: 輸出指定屬性,foo代表屬性。
.[foo] :輸出指定數組元素。foo代表數組下標。
.[]:輸出指定數組中全部元素
, :指定多個屬性作為過濾條件時,用逗號分隔
| : 將指定的數組元素中的某個屬性作為過濾條件
**files:**
JOSN格式文件。