精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何用Linux命令行工具解析和格式化輸出JSON

系統 Linux
在這里,我們將使用 Linux 上的命令行工具解析并格式化打印 JSON。它對于在 shell 腳本中處理大型 JSON 數據或在 shell 腳本中處理 JSON 數據非常有用。

[[273057]]

JSON 是一種輕量級且與語言無關的數據存儲格式,易于與大多數編程語言集成,也易于人類理解 —— 當然,如果格式正確的話。JSON 這個詞代表 Java Script Object Notation,雖然它以 JavaScript 開頭,而且主要用于在服務器和瀏覽器之間交換數據,但現在正在用于許多領域,包括嵌入式系統。在這里,我們將使用 Linux 上的命令行工具解析并格式化打印 JSON。它對于在 shell 腳本中處理大型 JSON 數據或在 shell 腳本中處理 JSON 數據非常有用。

什么是格式化輸出?

JSON 數據的結構更具人性化。但是在大多數情況下,JSON 數據會存儲在一行中,甚至沒有行結束字符。

顯然,這對于手動閱讀和編輯不太方便。

這是格式化輸出pretty print就很有用。這個該名稱不言自明:重新格式化 JSON 文本,使人們讀起來更清晰。這被稱為 JSON 格式化輸出

用 Linux 命令行工具解析和格式化輸出 JSON

可以使用命令行文本處理器解析 JSON 數據,例如 awk、sedgerp。實際上 JSON.awk 是一個來做這個的 awk 腳本。但是,也有一些專用工具可用于同一目的。

  1. jqjshon,shell 下的 JSON 解析器,它們都非常有用。
  2. Shell 腳本,如 JSON.shjsonv.sh,用于在 bash、zsh 或 dash shell 中解析JSON。
  3. JSON.awk,JSON 解析器 awk 腳本。
  4. json.tool 這樣的 Python 模塊。
  5. undercore-cli,基于 Node.js 和 javascript。

在本教程中,我只關注 jq,這是一個 shell 下的非常強大的 JSON 解析器,具有高級過濾和腳本編程功能。

JSON 格式化輸出

JSON 數據可能放在一行上使人難以解讀,因此為了使其具有一定的可讀性,JSON 格式化輸出就可用于此目的的。

示例:來自 jsonip.com 的數據,使用 curlwget 工具獲得 JSON 格式的外部 IP 地址,如下所示。

  1. $ wget -cq http://jsonip.com/ -O -

實際數據看起來類似這樣:

  1. {"ip":"111.222.333.444","about":"/about","Pro!":"http://getjsonip.com"}

現在使用 jq 格式化輸出它:

  1. $ wget -cq http://jsonip.com/ -O - | jq '.'

通過 jq 過濾了該結果之后,它應該看起來類似這樣:

  1. {
  2. "ip": "111.222.333.444",
  3. "about": "/about",
  4. "Pro!": "http://getjsonip.com"
  5. }

同樣也可以通過 Python json.tool 模塊做到。示例如下:

  1. $ cat anything.json | python -m json.tool

這種基于 Python 的解決方案對于大多數用戶來說應該沒問題,但是如果沒有預安裝或無法安裝 Python 則不行,比如在嵌入式系統上。

然而,json.tool Python 模塊具有明顯的優勢,它是跨平臺的。因此,你可以在 Windows、Linux 或 Mac OS 上無縫使用它。

如何用 jq 解析 JSON

首先,你需要安裝 jq,它已被大多數 GNU/Linux 發行版選中,并使用各自的軟件包安裝程序命令進行安裝。

在 Arch Linux 上:

  1. $ sudo pacman -S jq

在 Debian、Ubuntu、Linux Mint 上:

  1. $ sudo apt-get install jq

在 Fedora 上:

  1. $ sudo dnf install jq

在 openSUSE 上:

  1. $ sudo zypper install jq

對于其它操作系統或平臺參見官方的安裝指導。

jq 的基本過濾和標識符功能

jq 可以從 STDIN 或文件中讀取 JSON 數據。你可以根據情況使用。

單個符號 . 是最基本的過濾器。這些過濾器也稱為對象標識符-索引。jq 使用單個 . 過濾器基本上相當將輸入的 JSON 文件格式化輸出。

  • 單引號:不必始終使用單引號。但是如果你在一行中組合幾個過濾器,那么你必須使用它們。
  • 雙引號:你必須用兩個雙引號括起任何特殊字符,如 @、$,例如 jq .foo.”@bar”。
  • 原始數據打印:不管出于任何原因,如果你只需要最終解析的數據(不包含在雙引號內),請使用帶有 -r 標志的 jq 命令,如下所示:jq -r .foo.bar。

解析特定數據

要過濾出 JSON 的特定部分,你需要了解格式化輸出的 JSON 文件的數據層次結構。

來自維基百科的 JSON 數據示例:

  1. {
  2. "firstName": "John",
  3. "lastName": "Smith",
  4. "age": 25,
  5. "address": {
  6. "streetAddress": "21 2nd Street",
  7. "city": "New York",
  8. "state": "NY",
  9. "postalCode": "10021"
  10. },
  11. "phoneNumber": [
  12. {
  13. "type": "home",
  14. "number": "212 555-1234"
  15. },
  16. {
  17. "type": "fax",
  18. "number": "646 555-4567"
  19. }
  20. ],
  21. "gender": {
  22. "type": "male"
  23. }
  24. }

我將在本教程中將此 JSON 數據用作示例,將其保存為 sample.json。

假設我想從 sample.json 文件中過濾出地址。所以命令應該是這樣的:

  1. $ jq .address sample.json

示例輸出:

  1. {
  2. "streetAddress": "21 2nd Street",
  3. "city": "New York",
  4. "state": "NY",
  5. "postalCode": "10021"
  6. }

再次,我想要郵政編碼,然后我要添加另一個對象標識符-索引,即另一個過濾器。

  1. $ cat sample.json | jq .address.postalCode

另請注意,過濾器區分大小寫,并且你必須使用完全相同的字符串來獲取有意義的輸出,否則就是 null。

從 JSON 數組中解析元素

JSON 數組的元素包含在方括號內,這無疑是非常通用的。

要解析數組中的元素,你必須使用 [] 標識符以及其他對象標識符索引。

在此示例 JSON 數據中,電話號碼存儲在數組中,要從此數組中獲取所有內容,你只需使用括號,像這個示例:

  1. $ jq .phoneNumber[] sample.json

假設你只想要數組的第一個元素,然后使用從 0 開始的數組對象編號,對于第一個項目,使用 [0],對于下一個項目,它應該每步增加 1。

  1. $ jq .phoneNumber[0] sample.json

腳本編程示例

假設我只想要家庭電話,而不是整個 JSON 數組數據。這就是用 jq 命令腳本編寫的方便之處。

  1. $ cat sample.json | jq -r '.phoneNumber[] | select(.type == "home") | .number'

首先,我將一個過濾器的結果傳遞給另一個,然后使用 select 屬性選擇特定類型的數據,再次將結果傳遞給另一個過濾器。

解釋每種類型的 jq 過濾器和腳本編程超出了本教程的范圍和目的。強烈建議你閱讀 jq 手冊,以便更好地理解下面的內容。

資源:

 【編輯推薦】

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2022-12-30 08:30:28

Linux命令行json

2023-01-12 09:30:31

Linux命令行xml

2019-06-26 18:30:30

Linux命令行電子郵件

2010-07-16 15:44:57

Perl格式化輸出

2021-11-16 14:25:38

JavaScript前端

2020-12-11 06:44:16

命令行工具開發

2020-12-10 16:16:08

工具代碼開發

2010-08-25 21:03:38

命令行DHCP

2022-11-18 12:47:51

LinuxAWS命令行工具

2019-08-27 10:32:01

Linux操作系統Windows

2018-02-10 17:30:41

Linux命令

2023-04-11 10:37:40

bash命令printf

2020-09-02 07:19:41

printf 格式化輸出Unix

2011-09-06 16:17:50

Ubuntu

2010-07-15 10:47:22

Perl命令行

2009-07-20 09:55:30

華為命令行解析華為認證

2010-08-20 10:05:23

用戶命令

2020-11-01 20:00:26

命令行ShellLinux

2021-08-25 10:55:43

Linux命令工具

2014-02-12 13:30:16

Linux命令行終端工具
點贊
收藏

51CTO技術棧公眾號

国产·精品毛片| 91成人精品视频| 欧美性色综合网| 亚洲国产精品女人| 日韩在线观看视频一区| 视频一区二区不卡| 色综合色综合久久综合频道88| 欧美深性狂猛ⅹxxx深喉 | 国产精品久久三区| 69174成人网| 日韩精品一区二区亚洲av| 亚洲91久久| 亚洲另类图片色| 精品国产午夜福利在线观看| 伊人久久综合一区二区| 亚洲日穴在线视频| 欧美乱偷一区二区三区在线| 国产麻豆免费视频| 三级欧美在线一区| 欧美第一淫aaasss性| 国产精品免费无码| 国产另类在线| 91精品国产色综合久久不卡电影| 国产精品50p| a毛片在线观看| 国产欧美一区二区三区沐欲 | 污视频网址在线观看| 三妻四妾的电影电视剧在线观看| 自拍偷拍国产精品| 欧美一区亚洲二区| 天天操天天干天天爽| 国产精品99久久久| 91精品国产综合久久男男| 成年人av网站| 免播放器亚洲| 97色伦亚洲国产| 久久久久亚洲av成人片| 一本一道久久综合狠狠老| 国产一区二区三区在线观看视频| 久久久久麻豆v国产精华液好用吗| 爱情电影网av一区二区| 欧美色图12p| 五月婷婷之综合激情| 网友自拍亚洲| 一本色道**综合亚洲精品蜜桃冫| 国产二区视频在线| 福利影院在线看| 亚洲国产成人av网| 免费拍拍拍网站| av电影院在线看| 亚洲动漫第一页| 男女猛烈激情xx00免费视频| 欧美人与性动交α欧美精品济南到 | 亚洲欧美激情诱惑| 欧美夜福利tv在线| 国产成人一级片| 美女国产一区| 国产成人精品999| 波多野结衣视频在线看| 日韩不卡一区二区三区| 国产精品日韩精品| 国产免费一区二区三区免费视频| 韩国视频一区二区| 91视频在线免费观看| 男人天堂网在线视频| 99这里都是精品| 免费99视频| aaa在线观看| 亚洲同性同志一二三专区| 在线天堂一区av电影| 在线观看午夜av| 亚洲在线免费播放| 国产在线精品91| 二吊插入一穴一区二区| 欧美色综合网站| 在线视频日韩欧美| 北条麻妃一区二区三区在线| 亚洲国产古装精品网站| 性猛交娇小69hd| 日韩av密桃| 欧美激情视频一区二区三区不卡| 日本一级片免费看| 日韩av一级电影| 成人免费自拍视频| 少妇一级淫片免费看| 久久久久国产免费免费| 伊人色综合影院| 91福利区在线观看| 欧美三级视频在线| 蜜桃色一区二区三区| 竹菊久久久久久久| 久久久av电影| 特级毛片www| 老司机精品视频导航| 国产伦精品一区二区三区视频免费 | 国产精品男女视频| 久久爱www久久做| 精品久久久三级| 黄色片免费在线观看| 岛国av一区二区| 久久精品亚洲天堂| 亚洲第一论坛sis| 欧美成人午夜激情视频| 无码人妻一区二区三区线| 国产一区二区调教| 日本一区视频在线播放| 伦理在线一区| 欧美三级电影精品| 亚洲最大成人网站| 极品尤物久久久av免费看| 国产精品永久免费| 青青青草原在线| 亚洲激情综合网| www.com黄色片| 四虎884aa成人精品最新| 久久成人在线视频| 亚洲天堂999| 91女人视频在线观看| 久操手机在线视频| 日韩午夜视频在线| 伊人久久久久久久久久| 1级黄色大片儿| 国产福利一区在线观看| 一区二区av| 美女网站视频一区| 日韩精品免费视频| 日本少妇xxxx动漫| 成人中文字幕电影| 精品一区二区三区无码视频| 久久精品一级| 欧美成人精品在线播放| 91成年人视频| 国产精品国产三级国产aⅴ中文| 免费黄色日本网站| 婷婷亚洲成人| 2019中文在线观看| 婷婷综合激情网| 五月婷婷另类国产| 亚洲av无码一区二区三区观看| 欧美国产高清| 国产日韩精品入口| 999在线视频| 午夜不卡在线视频| 中出视频在线观看| 亚洲综合另类| 青青草久久网络| 亚洲成人va| 在线成人激情视频| 一区二区三区日| 亚洲欧洲av色图| 在线免费看v片| 午夜精品久久99蜜桃的功能介绍| 91精品视频免费观看| 岛国成人毛片| 欧美成人官网二区| 日韩精品一区二区三区国语自制| 成人黄色国产精品网站大全在线免费观看| www.亚洲成人网| 里番精品3d一二三区| 4p变态网欧美系列| 国产一级二级三级在线观看| 欧美性欧美巨大黑白大战| 欧美成人久久久免费播放| 精品一区二区av| av动漫在线播放| 无码日韩精品一区二区免费| 国产成人一区二区三区电影| 午夜视频在线观看网站| 欧美一级二级在线观看| 日本在线观看中文字幕| 国产亚洲欧美日韩日本| 奇米影音第四色| 欧美精品观看| 精品在线观看一区二区| 电影一区电影二区| 久久成人免费视频| 青青免费在线视频| 3d动漫精品啪啪1区2区免费| 久久久久久久九九九九| 久久亚洲欧美国产精品乐播| 青青草久久伊人| 亚洲黄色成人| 亚洲一区二区在| 国产suv精品一区二区四区视频| 欧美亚洲另类激情另类| 性开放的欧美大片| 精品久久人人做人人爱| 少妇高潮av久久久久久| 亚洲天堂久久久久久久| 国产亚洲色婷婷久久99精品91| 美腿丝袜在线亚洲一区| 97碰在线视频| 日韩国产一区二区三区| 国产精品日韩欧美一区二区三区| 国产私拍福利精品视频二区| 欧美黄色片视频| 永久av在线| 日韩大陆毛片av| 国产乱子伦精品无码码专区| 丰满岳妇乱一区二区三区| 婷婷激情四射网| 久久嫩草精品久久久久| 四川一级毛毛片| 人人超碰91尤物精品国产| 成人黄色大片网站| 99九九热只有国产精品| 久久精品丝袜高跟鞋| 国产精品一区免费在线| 国产精品福利在线观看| 丁香花在线影院| 久久av.com| av在线免费一区| 日韩精品一区二区视频| 国产成人精品a视频| 欧美在线免费观看视频| 黄色激情视频在线观看| 亚洲人成网站精品片在线观看| 99久久久无码国产精品性 | 欧美另类变人与禽xxxxx| 亚洲第一网站在线观看| 午夜不卡av免费| 久久久久久久久久久久久久免费看| 国产欧美日韩精品一区| 国产在线观看无码免费视频| 成人av免费网站| 天堂va欧美va亚洲va老司机| 激情五月婷婷综合网| 亚洲精品视频导航| 日韩av在线免费观看不卡| 丝袜老师办公室里做好紧好爽 | 九一精品国产| 黑人另类av| 国内精品国产成人国产三级粉色| 99理论电影网| 在线精品国产亚洲| 99国产高清| 国产精品nxnn| 精品不卡在线| 日韩美女精品| 免费久久久一本精品久久区| 色老板在线视频一区二区| 国产自产在线视频一区| 偷拍自拍亚洲色图| 蜜桃麻豆91| 国产毛片一区二区三区| 日产精品一线二线三线芒果| 精品freesex老太交| 日韩高清三级| 日韩综合网站| 天天做天天爱天天高潮| 在线精品视频在线观看高清| 日本xxx免费| 欧美日韩国产综合网| 欧美中文字幕在线观看视频| 一区精品久久| 国产视频一视频二| 首页综合国产亚洲丝袜| 久久久精品麻豆| 精品写真视频在线观看| 午夜免费视频网站| 成人v精品蜜桃久久一区| 少妇户外露出[11p]| 国产欧美日韩久久| 男女性高潮免费网站| 亚洲国产精品久久久久秋霞影院 | 久久久久亚洲av无码专区体验| 亚洲黄色性网站| 可以免费看的av毛片| 在线亚洲免费视频| 6—12呦国产精品| 精品88久久久久88久久久| 青青青免费视频在线2| 日韩在线中文视频| 欧美日韩经典丝袜| 国产成+人+综合+亚洲欧美丁香花| 欧美日一区二区三区| 亚洲一区亚洲二区亚洲三区| 久久综合社区| 制服国产精品| 亚洲视频成人| 色婷婷激情视频| 99r国产精品| 亚洲色图27p| 精品成人av一区| 亚洲综合精品国产一区二区三区| 日韩精品中文字幕在线不卡尤物| 日韩一区二区三区不卡| 中文字幕国产精品久久| 欧美寡妇性猛交xxx免费| 国产精品96久久久久久| 精品视频在线观看免费观看| 精品国产一区二区三区免费| 日韩电影在线视频| 69堂免费视频| 国产一区日韩二区欧美三区| 国产白嫩美女无套久久| 亚洲天堂a在线| 欧美a视频在线观看| 精品欧美一区二区在线观看| 国产视频精品久久| 久久久噜噜噜久噜久久| 欧洲成人一区| 欧美18视频| 亚洲美女一区| 人妻激情偷乱视频一区二区三区| 国产视频一区二区三区在线观看| 国产亚洲精品码| 在线不卡的av| 国产高清在线观看| 欧美一级黄色网| 亚洲一区二区三区中文字幕在线观看 | 免费在线观看污网站| 久久久久久久久久久久久夜| 久久在线视频精品| 91精品国产色综合久久ai换脸 | www五月婷婷| 色99之美女主播在线视频| 亚洲第一av| 国产精品免费一区二区三区观看| 欧美超碰在线| 亚洲一区二区三区四区五区xx| 久久婷婷成人综合色| av大片免费在线观看| 日韩欧美中文一区二区| 快射视频在线观看| 成人黄色av网| 成人一区二区| 人人干人人视频| 久久理论电影网| 天堂中文在线网| 精品视频一区在线视频| 色综合亚洲图丝熟| 久久久久久国产精品mv| 亚洲乱码视频| 亚洲香蕉中文网| 香蕉乱码成人久久天堂爱免费| 国产黄频在线观看| 欧美黄色片在线观看| av成人综合| 国产免费黄色一级片| av在线免费不卡| 国产成人一区二区三区影院在线| 亚洲成人xxx| 超黄网站在线观看| 国产精品乱码视频| 亚洲激情自拍| www.自拍偷拍| 色狠狠色噜噜噜综合网| 国产精品二线| 成人免费视频97| 午夜精品国产| 亚洲国产第一区| 91激情五月电影| 男人的天堂在线视频免费观看| 成人xxxx视频| 亚洲欧美综合| 成人免费毛片日本片视频| 91国偷自产一区二区开放时间 | 欧美精品国产一区| 中文字幕在线永久| 欧美性猛交xxxx偷拍洗澡| 国产三级在线观看| 国产在线日韩在线| 国产精品porn| 可以直接看的无码av| 欧美网站一区二区| 91极品在线| 免费国产一区二区| 精品一区二区三区久久久| 91视频免费在线看| 亚洲精品小视频| 4438五月综合| 鲁一鲁一鲁一鲁一澡| 国产精品无码永久免费888| 国产日韩在线观看一区| 韩国日本不卡在线| 久久综合国产| 蜜臀视频在线观看| 欧美影片第一页| 在线免费av导航| 欧美午夜精品理论片a级大开眼界| 蜜臀av一区二区| 日韩精品成人在线| 中文字幕一精品亚洲无线一区| 视频精品一区| 超碰97人人射妻| 亚洲视频一区二区在线观看| 日韩有码第一页| 国产主播精品在线| 一本色道久久| 1024手机在线视频| 亚洲品质视频自拍网| 日韩成人在线观看视频| 欧美视频免费播放| 亚洲最新视频在线播放| av国产在线观看| 久久99精品久久久久久水蜜桃 | 欧美视频在线一区| 人成在线免费网站| 久操手机在线视频|