因为最近要处理一些 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" }
利用 jq 能够以 key 作为关键字来对 JSON 作出快速查询, 例如:
$ jq .version package.json "0.0.0"
$ jq .scripts.test package.json "grunt test"
熟悉命令行的朋友可能都知道 | (管道)是一个非常强大的 武器。幸运的是,jq 也提供了对管道的支持。
$ jq '.devDependencies|{ karma }' package.json { "karma": "^0.12.19" }
使用jq工具在Shell命令行处理JSON数据,布布扣,bubuko.com
原文地址:http://blog.csdn.net/offbye/article/details/38379195