Linux 中的 JQ 命令及示例

JSON 是一种数据表示格式,用于在应用程序的不同层之间存储和传输数据; 它将数据存储在键:值对中。

JSON 的语法源自 JavaScript,但它本身与语言无关。 兼容多种编程语言; 这些语言包括可用于将 JSON 集成到程序中的代码; 但不幸的是,我们不能直接在 Linux shell 中使用 JSON,因为它无法解释它。 为了在 Linux shell 中使用 JSON,我们混合使用了 JQ 和 sed 等工具。

在这篇文章中,我们将学习使用 JQ 命令在 Linux shell 中操作和处理 JSON 数据。

如何安装JQ命令

JQ 命令在某些 Linux 发行版中默认不可用; 需要下载到系统中才能在终端上使用; 您可以像系统上的任何其他程序包一样下载 JQ 命令。 在 Ubuntu 20.04 上,使用下面给出的命令安装 JQ 实用程序:

sudo apt install jq  

如果您运行的是 Ubuntu 以外的发行版,只需将 apt 替换为您系统的包管理器。

如果你正在运行一个像 CentOS 8 这样默认已经有 JQ 的发行版,那么你会得到类似这样的输出:

sudo dnf install jq  

句法

现在我们可以开始使用 JQ 命令,因为它已经成功安装在我们的系统上,但首先,让我们看一下 JQ 命令的语法:

jq [options]  [file...]  jq [options] --args  [strings...]  jq [options] --jsonargs  [JSON_TEXTS...] 

JQ 命令可以以多种不同的方式使用; 它可以直接用于 JSON 文件,也可以结合其他几个命令来解释 JSON 数据。 JQ 命令可以与不同的过滤器一起使用,例如 “.”, “|”, “,” 或者 “.[]” 过滤器来组织 JSON 数据。

JQ 命令还采用不同的选项作为参数,例如 --tab, --stream, --indent n, --unbuffered,以及 -L 目录选项。 JQ 命令的语法乍一看可能很复杂,但阅读整篇文章后您就会熟悉它。

如何使用 JQ 命令组织 JSON 数据

JQ 命令过滤器最简单和常用的特性。 它们用于在将 JSON 数据打印到标准输出时对其进行组织和美化。

在这个例子中,我们有一个名为 employee.json 的 JSON 文件,我们需要将数据输出到标准输出:

{"workers":{"name": "John Brooks","id": "003"}} 

我们可以使用 cat 命令来显示数据:

cat employee.json 

使用 cat 命令打印到标准输出的数据是无组织和混乱的。 我们可以使用 JQ 命令和 ‘.’ 筛选:

jq '.' employee.json