使用 jq 在 Linux 中实现数据批量处理的简易安装教程(jqlinux安装)

jq 是一款免费开源的、解析、生成、过滤 JSON 格式数据的简便工具。它也被称为“sed/awk 的 JSON 版本”,在各种 Linux 发行版本都可上用,有时需要使用它来进行数据批量处理,本文介绍它的安装及应用的简易教程。

### 一、安装

由于 jq 是由 C 语言驱动的,建议直接使用发行版包来安装,以 CentOS 7 举例:

“`shell

yum -y install epel-release

yum -y install jq


检查安装是否成功:

```shell
# 查看 jq 版本
jq --version
jq-1.6

### 二、应用

#### 2.1 将JSON格式数据提取成表格格式

示例:

cat dns.json
[
{
"name": "dev",
"type": "A",
"value": "10.0.0.1"
},
{
"name": "dev",
"type": "NS",
"value": "ns.domain.com"
},
{
"name": "www",
"type": "A",
"value": "10.0.0.2"
}
]

执行:

cat dns.json|jq --raw-output '.[]|[.name,.type,.value]|@tsv'
dev A 10.0.0.1
dev NS ns.domain.com
www A 10.0.0.2

该命令将 JSON 模式的记录以表格格式输出,并用空格做为数据分隔符。

#### 2.2 格式化输出

通过使用 `–compact-output` 参数我们还可以对输出结果进行整理,使它更容易查看:

cat dns.json|jq --compact-output '.'
[
{
"name": "dev",
"type": "A",
"value": "10.0.0.1"
},
{
"name": "dev",
"type": "NS",
"value": "ns.domain.com"
},
{
"name": "www",
"type": "A",
"value": "10.0.0.2"
}
]

#### 2.3 过滤特定值

通过使用 `.[]|select(.type == “A”)` 过滤条件来选择记录类型,等价于 SQL 中的 WHERE 语句:

cat dns.json|jq --compact-output '.[]|select(.type == "A")
[
{
"name": "dev",
"type": "A",
"value": "10.0.0.1"
},
{
"name": "www",
"type": "A",
"value": "10.0.0.2"
}
]

### 结语

本文介绍了使用 jq 在 Linux 中实现数据批量处理的简易安装教程,jq 的安装使用相对非常简单,有时可以替代众多的脚本处理,对于对 Linux 死板的童鞋来说,绝对是一个不可多得的工具。


数据运维技术 » 使用 jq 在 Linux 中实现数据批量处理的简易安装教程(jqlinux安装)