使用jq工具在Shell命令列處理JSON資料,jqjson

來源:互聯網
上載者:User

使用jq工具在Shell命令列處理JSON資料,jqjson

       因為最近要處理一些 JSON 資料格式,一大早經過一番搜尋後,最終找到了 jq 這個很棒的工具。jq 允許你直接在命令列下對 JSON 進行操作,包括分區、過濾、轉換等等。

      首先在mac下安裝jq,使用brew install jq就可以了,前提是安裝了homebrew,如果在linux ubuntu下,應該可以使用sudo apt-get install jq安裝。

讓我們通過幾個例子來說明 jq 的功能:
一、輸出格式化,漂亮的列印效果
如果我們用文字編輯器開啟 JSON,有時候可能看起來會一團糟,但是通過 jq 的 .(點)過濾器就可以立馬讓 JSON 的格式規整起來。
1.用文字編輯器開啟後的樣子

2.用 jq 顯示的結果,以後在終端下看json舒服了!

$ jq . package.json {  "scripts": {    "test": "grunt test"  },  "engines": {    "node": ">=0.10.0"  },  "devDependencies": {    "karma-ng-html2js-preprocessor": "^0.1.0",    "karma": "^0.12.19",    "grunt-karma": "^0.8.3",    "karma-ng-scenario": "^0.1.0",    "time-grunt": "~0.2.1",    "load-grunt-tasks": "~0.4.0",    "jshint-stylish": "~0.1.3",    "grunt-usemin": "~2.0.0",    "grunt-svgmin": "~0.2.0",    "grunt-rev": "~0.1.0",    "grunt-ngmin": "~0.0.2",    "grunt-newer": "~0.6.1",    "grunt-contrib-connect": "~0.5.0",    "grunt-contrib-concat": "~0.3.0",    "grunt-contrib-compass": "~0.7.2",    "grunt-contrib-clean": "~0.5.0",    "grunt-concurrent": "~0.5.0",    "grunt-bower-install": "~1.0.0",    "grunt-autoprefixer": "~0.4.0",    "grunt": "~0.4.1",    "grunt-contrib-copy": "~0.4.1",    "grunt-contrib-cssmin": "~0.7.0",    "grunt-contrib-htmlmin": "~0.1.3",    "grunt-contrib-imagemin": "~0.3.0",    "grunt-contrib-jshint": "~0.7.1",    "grunt-contrib-uglify": "~0.2.0",    "grunt-contrib-watch": "~0.5.2",    "grunt-google-cdn": "~0.2.0"  },  "dependencies": {},  "version": "0.0.0",  "name": "myyo"}


二、快速查詢JSON資料

利用 jq 能夠以 key 作為關鍵字來對 JSON 作出快速查詢, 例如:

$ jq .version package.json "0.0.0"

jq 的鍵查詢也支援鏈式調用,如:

$ jq .scripts.test package.json "grunt test"


三、jq的管道操作

熟悉命令列的朋友可能都知道 | (管道)是一個非常強大的 武器。幸運的是,jq 也提供了對管道的支援。

$ jq '.devDependencies|{ karma }' package.json {  "karma": "^0.12.19"}

在這裡,我們使用管道過濾並構造出karma對象


四、總結
如果你需要在命令列下處理 JSON,我強烈推薦 jq。jq 不僅 能夠滿足一般性的常見需求,更包含運算、內建函數、條件比較、 變數聲明、自定函數等強大功能。更多內容可以通過 jq 的官方手冊進行學習。
shell命令列與在DOS視窗中輸入命令有什不同

區別大的去了
shell是linux必有的,理論上不需要,但實際上必有。
DOS是一種作業系統,出生在win之前,現在win上的那個命令列視窗叫做CMD。只是一個軟體,啟動並執行規則,指令碼是批處理,但文法不完整。邏輯有缺陷,對win來說,這個大部分情況下不會用到,少數情況下會用,屬於那種不能丟,但不丟也不會讓你很痛苦的那種。但shell的指令碼十分完整,邏輯也嚴謹。
powershell是微軟開發的一種在伺服器端,通過命令列管理系統的整合工具。目標是shell,但現實是差的遠了,很少很少很少有人用
 
隨身碟啟動系統要輸入完整的shell命令列怎處理

百度下杏雨梨雲吧。不錯的免量產工具。注意備份個人資料。具體使用方法也百度啦…下軟體的時候應該有…
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.