Linux下Json格式化神器jq
SON是前端编程经常用到的格式,对于PHP或者Python,解析JSON都不是什么大事,尤其是PHP的json_encode和json_decode非常好用。然后Linux下也有这样的神器就是jq命令,对于运维平常处理json格式的文件有很大帮助!
对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,而且jq没有乱七八糟的依赖,只需要一个binary文件jq,就足矣。
一、安装
Centos:
yum -y install jq
Ubuntu:
apt-get update
apt-get -y install jq
https://stedolan.github.io/jq/manual/
yum -y install jq
使用方式,直接输出格式化后的数据
cat /tmp/speed2.txt |jq
{
"url": "http://baidu.com",
"host": "baidu.com",
"srcip": "",
"tid": "201906_7ade73027159af0c3b39fa211525610e",
"pre": "201906",
"type": 1,
"taskstatus": "2",
"teststatus": 1,
"message": "",
"num": 1,
"num2": "22",
"xmlfile": "",
"check_time": "",
"freshdata": {
"\"148349\"": {
"linkname": "",
"link": "",
"name": "K2P-P99",
"areaname": "海南海口市联通",
"ip": "111.29.89.202",
"dns": "127.0.0.1",
"isp": "联通",
"view": "海南",
"sid": "148349",
"SrcIP": {
"srcip": "220.181.38.148",
"ipfrom": "中国北京电信"
},
"IP": "111.29.89.202",
"HttpCode": "200",
"TotalTime": "0.344s",
"NsLookup": "0.009s",
"ConnectTime": "0.043s",
"downtime": "0.185s",
"FileSize": "38.63KB",
"realsize": "38.63KB",
"speed": "208.806KB/s",
2.直接取keys
[root@hk-prdm-server-tor-01 frontendm]# cat /tmp/speed2.txt |jq keys
[
"accuracy_backdata",
"ajax_over",
"average_data",
"backdata",
"check_time",
"freshdata",
"host",
"message",
"num",
"num2",
"port",
"pre",
"speed_backdata",
"srcip",
"taskstatus",
"teststatus",
"tid",
"time_backdata",
"type",
"url",
"xmlfile"
]
3.取key 对应的值
[root@hk-prdm-server-tor-01 frontendm]# cat /tmp/speed2.txt |jq .url
"http://baidu.com"
暂时还木有人评论,坐等沙发!