使用 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 --versionjq-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.1dev 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 死板的童鞋来说,绝对是一个不可多得的工具。