今天在github上下载的一个脚本中发现了一个jq命令,起初还以为是开发人员自己的开发命令,但是苦于不知道这个命令执行完的效果是什么,就搜索了以下,发现还真有jq命令,还是个神器,jq的官方地址在这里,官方的解释是这样的:jq is a lightweight and flexible command-line JSON processor.
乍一看是处理JSON格式的数据的,假如在/tmp目录下有个data文件,里面的数据是JSON格式,直接cat data文件,并看不出JSON格式很好的层次,我一般都会用python处理以下:
data文件:
{"user":"guol","location":{"country":"China","city":"shanghai"},"titles":[{"A":"9","B":"3"},{"C":"1","D":"0"}]}
python处理:
cat data | python -m json.tool
还要打一串命令,除了看着明白外,也不能针对JSON格式的数据做进一步操作。
1 下载安装jq
wget http://stedolan.github.io/jq/download/linux64/jq
或者安装开发版
git clone https://github.com/stedolan/jq.git
2 使用jq命令查看JSON格式的数据
注意jq命令后面的那个".",是jq最基本的匹配模式,jq的功能可不止这一点点,因为jq后面跟的是匹配模式,所以你有多种方法匹配你想要的结果,jq支持多种匹配模式,例如直接匹配文件里面的数据:
也可以访问元组里的数据:
如果没有相关值,则返回null
以上只是jq的简单用法,jq还有一些内建函数,用来查询你匹配的值是否存在,例如:length、keys、has、del、select、max、any、all、range、sqrt等等。官方给出了很好的例子,把这篇<<jq manual>>学会,就掌握jq的大部分用法了。