什么是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. Presto个人常用操作

    时间戳转日期: from_unixtime(1569168000,'yyyy-MM-dd') = '2019-09-23' '20190903'转为'2019-09-23': unix_timesta ...

  2. 关于/var/log/maillog 时间和系统时间不对应的问题 -- 我出现的是日志时间比系统时间慢12个小时

    那么让我们来见证奇迹的时刻吧!! 首先你要看下/etc/localtime的软连接,到哪了 一般就是这块出问题了 检查这里就绝对不会错的 对比图 : 这种情况, 删除/etc/localtime : ...

  3. VBA Exit For语句

    当想要根据特定标准退出For循环时,就可以使用Exit For语句.当执行Exit For时,控件会立即跳转到For循环之后的下一个语句. 语法 以下是在VBA中Exit For语句的语法. Exit ...

  4. 【Mybatis】缓存

    一.概述 1.1 缓存的意义 1.2 mybatis持久层缓存 二.一级缓存 2.1 原理 2.2 一级缓存配置 一级缓存测试 三.二级缓存 3.1 原理 3.2 mybatis二级缓存配置 3.3 ...

  5. Python memory error的问题

    前段时间在读取一个文件的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条....下面说一下几个解题步骤....一般就是用下 ...

  6. 使用Windows命令行reg控制注册表键值

    使用Windows命令行reg控制注册表键值 引言 熟悉Windows操作系统的朋友可能都知道,Windows操作系统下的注册表相当于系统的数据库 ,部分软件将自己的配置信息都放在注册表里面,而注册表 ...

  7. java线程基础巩固---多Product多Consumer之间的通讯导致出现程序假死的原因分析

    在上一次中已经实现一个生产者与消费者的初步模型(http://www.cnblogs.com/webor2006/p/8413286.html),但是当时只是一个生产者对应一个消费者,先贴下代码: p ...

  8. JVM元空间深度解析

    回顾一下上一次对于这次做的实验的一个背景说明: 这里将借助cglib这个库来完成动态类的创建,为啥要使用它?因为使用简单,二是在程序运行期可以动态的生成类,动态生成类之后生成类的元数据就会落入到元空间 ...

  9. .NET Core、EF、Dapper、MySQL 多种方式实现数据库操作(动态注册实体类)

    目录 前言 一.技术选型 二.遇到的坑 2.1..NET Core 下 EF 的问题 2.2.数据库实体类的注册 切记坑 前言 最近在学习.研究 .NET Core 方面的知识,动手搭建了一些小的 D ...

  10. 阿里云 centos7 安装mysql数据库

    环境:阿里云ECS服务器,系统为centos7.2 删除原来的数据库: centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下: [ ...