Linux下Json格式化神器jq

来源:本站原创 IT小技巧 超过60 views围观 0条评论

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"

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=4155转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!