0. 概述
有时出于各种原因,我需要在命令行处理 JSON 字符串,但是,大多数情况这些 JSON 字符串都不是格式化的,也就是连成一陀的,所以我需要格式化他们,本文就介绍两种在命令行格式化字符串的操作。
经过我长期的实践和摸索,我总结了两种方式,一种是无需安装其他工具,直接使用系统自带的 python 即可;另外一种强大一些,但是需要另行安装工具。
1. Python 格式化 JSON
在命令行中,可以通过 python 直接格式化 JSON,使用方式为:python -m "json.tool"
,完整的使用方式为:
[root@liqiang.io]# curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | python -m "json.tool"
... ...
"parents": [
{
"html_url": "https://github.com/stedolan/jq/commit/2065d6c3aa700742d4fabf11e1d9462119d8f104",
"sha": "2065d6c3aa700742d4fabf11e1d9462119d8f104",
"url": "https://api.github.com/repos/stedolan/jq/commits/2065d6c3aa700742d4fabf11e1d9462119d8f104"
}
],
"sha": "707022b0e5d2b1c7b8a55e3c4f4ab539e05a9086",
"url": "https://api.github.com/repos/stedolan/jq/commits/707022b0e5d2b1c7b8a55e3c4f4ab539e05a9086"
}
]
效果还可以,但是,比较平淡,没有高亮之类的操作。
2. jq 工具
另外一个不错的选择就是另行安装 jq 工具,如果使用的是 CentOS,可以直接通过 EPEL 源进行 YUM 安装,其他系统应该也有类似的包管理软件:
[root@liqiang.io]# yum install -y jq
然后直接使用:
[root@liqiang.io]# curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'
... ...
图 1:jq 格式化 json |
可以看到效果还是非常不错的。