命令行功夫(1)
JSON(JavaScript Object Notation)是当下非常流行的数据交换格式,为了在命令行下对其进行处理,jq 是一个不容错过的好工具。利用 jq,你可以直接对 JSON 进行操作,包括分片、过滤、转换等等。
下面,让我们通过几个小例子来说明 jq 的强大功能。
漂亮打印
如果我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,但是通过 jq 的 .
(点)过滤器就可以立马让 JSON 的格式规整起来。
$ jq . soundtag.json
用文本编辑器打开后的样子
用 jq 显示的结果
快速查询
利用 jq 能够以 key
(键)作为关键字来对 JSON 作出快速查询,例如:
$ jq .cn soundtag.json
这将仅仅显示 cn
键对应的值。
值得一提的是,jq 的键查询也支持链式调用,如:
$ jq .cn[0].pNum soundtag.json
管道操作
熟悉命令行的朋友可能都知道 | (管道)是一个非常强大的武器。幸运的是,jq 也提供了对管道的支持。
$ jq '.cn[] | { pNum }' soundTag.json
在此,我们使用管道过滤并构造出 pNum 对象。
总结
如果你需要在命令行下处理 JSON,笔者强烈推荐 jq。jq 不仅能够满足一般性的常见需求,更包含运算、内置函数、条件比较、变量声明、自定函数等强大功能。对此不妨通过 jq 的官方手册进一步学习。