什么是jq?jq是Linux下面把文本字符串格式化成json格式的工具

系统环境:centos 7

一、安装

(1)yum安装

a、安装epel源

# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# rpm -ivh epel-release-latest-7.noarch.rpm

# yum repolist   ###检查是否已经添加到源列表

b、yum install -y jq

(2)源码安装

a、下载源码包

#  wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz

#  tar zxvf jq-1.5.tar.gz

#  cd jq-1.5

#  ./configure

#  make && make install

编译安装完成以后就能在该目录下看见jq二进制文件了,添加到环境变量~/.bashrc

如图:

# source ~/.bashrc

安装完成,现在就可以使用jq命令

二、jq测试

(1)简单测试

#  echo '{"yjt":"boy","age":20}' |jq .   #注意,命令最后有一个点,代表显示全部的json文件

效果:

注意:jq命令会检查json格式的合法性,如果不合法,将保错,具体的json格式,请浏览:http://www.w3school.com.cn/json/json_syntax.asp 或者 https://stedolan.github.io/jq/manual/

(2)通过key获取值,如何获取呢?

jq '.key'

file文件内容

{
"System_Time":"2018-11-27 17:42:02",
"Hostname":"test.com",
"Network":[
{
"Network_Card": "bond1",
"ip":"10.126.140.16",
"Input_Traffic": "4.448K/S",
"Output_Traffic": "2.649K/S "
},{
"Network_Card": "eth4",
"ip":null,
"Input_Traffic": "2.679K/S",
"Output_Traffic": "1.805K/S "
},{
"Network_Card": "eth6",
"ip":null,
"Input_Traffic": "0.750K/S",
"Output_Traffic": "0.000K/S "
}],
"CPU":{
"us":"0%",
"sy":"0%",
"id":"100%",
"wa":"0%",
"cpu_rate":"0.01%",
"CPU_Load_Average": " 0.15, 0.04, 0.01",
"Running_Process":"1",
"Total_Process":"696",
"Host_Running_Time":" 18 days 22:53",
"User_Connection_Number":"2" ,
"CPU_Status":"Normal"
},
"Memory":{
"total_mem":"128644M",
"use_mem": "1373M",
"free_mem": "127270M",
"use_rate": "1%",
"free_swap": "65535M",
"total_swap": "65535M",
"use_swap": "0M",
"swap_use_rate": "0%",
"Memory_Status":"Normal",
"Swap_Memory_Status":"Normal"
},
"disk":{
"root_use":"1%",
"root_status":"Normal",
"var_use":"1%",
"vae_status":"Normal",
"data_use":"1%",
"data_status":"Normal",
"data1_use":"0%",
"data1_status":"Normal",
"data2_use":"1%",
"data2_status":"Normal",
"data3_use":"1%",
"data3_status":"Normal"
},
"TCP":{
"TIME_WAIT":"36",
"FIN_WAIT1":"0",
"FIN_WAIT2":"0",
"CLOSE_WAIT":"0",
"ESTABLISHED":"2",
"SYN_RECV":"0",
"LAST_ACKV":"0",
"CLOSING":"0"
},
"type":"END"
}

  

例:

(3)获取不存在的key会返回null

(4)嵌套解析

(5)内建函数

a、has  用来判断是否存在某个key

b、key  用来获取json中的key元素的

例:

Linux之jq的更多相关文章

  1. linux 之 jq

    1.安装 mac 安装: brew install jq centos 安装: yum install jq ubuntu: 安装: apt-get install jq 2.使用 cat test. ...

  2. linux使用jq工具解析json

    jq类似一个awk或grep一样的神器,可以方便地在命令行操作json 这里我使用海南万宁的天气接口做演示,地址:http://t.weather.sojson.com/api/weather/cit ...

  3. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  4. Linux json解析jq

    jq是一个linux下很方便的json解析器,平时看json文件都是一行混在一起的,非常不适合阅读. https://stedolan.github.io/jq/download/ 直接到官网上下载, ...

  5. linux服务创建及jq配置服务列表查看

    1.应用背景 随着业务需求,后台处理服务不断增多,对于这些服务或后台程序的查看.更新操作越来越凌乱,所以我们首先需要一个服务列表查看工具,方便查看各 服务的端口.运行状态.jar包路径等等. 2.创建 ...

  6. [Linux] jq:命令行JSON处理工具

    jq命令帮助我们很方便地在终端查看和处理json文件 jq命令的帮助信息: abby@abby:bgs$ jq -h jq - commandline JSON processor [version ...

  7. 一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用

    这个命令行神器的下载地址:https://stedolan.github.io/jq/# Windows和Linux版本均只有两个可执行文件,大小不过2MB多. 以Windows版本为例,介绍其用法. ...

  8. 【转帖】Linux命令行操作json神器jq

    Linux命令行操作json神器jq https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行 ...

  9. linux 下强大的 JSON 解析命令 jq

    介绍 jq is like sed for JSON data - you can use it to slice and filter and map and transform structure ...

随机推荐

  1. jq的ajax方法

    相较与js异步对象的繁琐,jq的ajax对象结构更加清晰 一:ajax对象简述 ajax(Asynchronous JavaScript and XML),异步的xml和js对象,主要用于在不刷新全局 ...

  2. 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀

    最近Jerry在SAP社区上看到一篇博客:It's Steampunk now. 博客原文:https://blogs.sap.com/2019/08/20/its-steampunk-now/ 什么 ...

  3. awk 条件及循环语句和字符串函数

    条件语句 if(条件表达式) 动作1 else if(条件表达式) 动作2 else 动作3 循环语句: while循环: while(条件表达式) 动作 do while循环: do 动作 whil ...

  4. [#Linux] CentOS 7 应用程序添加快捷方式到桌面

    在centos使用中,会发现应用程序只能到eclipse的目录中执行eclipse的脚本去启动.这样很不方便. 查阅资料后找到了解决方案: 1.通过命令行,进入到桌面文件夹中 cd /home/you ...

  5. dstat 监控工具

    dstat 监控工具 Linux 自带的监控工具.界面相当友好,可以替代其他的监控工具. 安装 yum install -y dstat 命令使用 dstat -h # 帮助 dstat -tpcdr ...

  6. [Python]pip install offline 如何离线pip安装包

    痛点:目标机器无法连接公网,但是能使用rz.sz传输文件 思路:在能上网的机器是使用pip下载相关依赖包,然后传输至目标机器,进行安装 0. Install pip: http://pip-cn.re ...

  7. Go语言的反射

    反射是语言里面是非常重要的一个特性,我们经常会看见这个词,但是对于反射没有一个很好的理解,主要是因为对于反射的使用场景不太熟悉. 一.理解变量的内在机制 1.类型信息,元信息,是预先定义好的,静态的. ...

  8. 剑指Offer(三十一):整数中1出现的次数(从1到n整数中1出现的次数)

    剑指Offer(三十一):整数中1出现的次数(从1到n整数中1出现的次数) 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https:// ...

  9. Eclipse启动tomcat超时

    启动tomcat 超时 Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the ser ...

  10. 拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别

    一.引言 本来想记录一下关于用户登陆和登陆之后的权限管理.菜单管理的问题,想到解决这个问题用到Interceptor,但想到了Interceptor,就想到了Filter,于是就想说一下它们的执行顺序 ...