专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

jq命令怎么用,jq命令用法

来源:小易整编  作者:小易  发布时间:2023-03-28 05:06
摘要:jq命令怎么用,jq命令用法jq介绍jq是stedolan开发的一个轻量级的和灵活的命令行JSON处理器。它主要用于在命令行界面处理JSON输入,并使用给定的过滤条件来过滤符合条件的新的JSON串。通常在类Unix环境下,我们可以快速的使用...

jq命令怎么用,jq命令用法

jq命令怎么用,jq命令用法

jq 介绍

jq 是 stedolan 开发的一个轻量级的和灵活的命令行 JSON 处理器。

它主要用于在命令行界面处理 JSON 输入,并使用给定的过滤条件来过滤符合条件的新的 JSON 串。

通常在类 Unix 环境下,我们可以快速的使用 jq 来进行 JSON 数据格式化过滤和处理。

同时需要注意的是,该命令行工具和 awk/sed/grep 工具一样,属于系统的默认命令,如果系统没有该命令,可以尝试使用如下方式进行安装。

# Ubuntu 系列 $ sudo apt-get install jq # CentOS 系列 $ yum install jq

jq 基础使用

1. 基本语法

jq [options] <jq filter> [file...] jq [options] --args <jq filter> [strings...] jq [options] --jsonargs <jq filter> [JSON_TEXTS...] # options 可选参数列表和说明 -c               将格式化json输出为紧凑的字符串格式; -n               使用`null`作为单个输入值; -e               根据输出设置退出状态代码; -s               将所有输入读取(吸取)到数组中;应用过滤器; -r               输出原始字符串,而不是JSON文本; -R               读取原始字符串,而不是JSON文本; -C               为JSON输出填充颜色; -M               单色(不要为JSON着色); -S               在输出上排序对象的键; --tab            使用制表符进行缩进; --arg a v        将变量$a设置为value<v>; --argjson a v    将变量$a设置为JSON value<v>; --slurpfile a f  将变量$a设置为从<f>读取的JSON文本数组; --rawfile a f    将变量$a设置为包含<f>内容的字符串; --args           其余参数是字符串参数,而不是文件; --jsonargs       其余的参数是JSON参数,而不是文件; --               终止参数处理;

当然了,我们也可以使用 man jq 或者 jq --help 再或者官网文档 jq-doc 中查看更多使用指南。

2. 基础使用

2.1 基础字段解析

## 使用 . 参数默认格式化整个json数据 $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/"}'  | jq . {  "Name": "CloudNativeOps",  "Owner": "GoOps",  "WebSite": "https://bgbiao.top/" } ## 使用.$name 来获取指定filed $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/"}'  | jq .Name "CloudNativeOps" ## 解析json 中的层级数据 $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}'  | jq .Contact {  "Email": "weichuangxxb@qq.com",  "QQ": "371990778",  "WeChat": "GoOps" } ### 仅输出 Contact 中的 WeChat $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}'  | jq .Contact.WeChat "GoOps" ## 获取多个字段 (使用'.filed1,.filed2' 可以获取两个字段) $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}'  | jq ".Name,.Owner" "CloudNativeOps" "GoOps"

2.2 列表、迭代器、管道

## 解析json 中的数组或者列表 $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}'  | jq .Skills [  {    "name": "Python",    "type": "dev"  },  {    "name": "Golang",    "type": "dev"  },  {    "name": "Ansible",    "type": "ops"  },  {    "name": "Kubernetes",    "type": "dev"  },  {    "name": "ElasticSearch",    "type": "ops"  } ] ### 同时也支持范围索引,比如 .Skills[1:3] $ echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/", "Contact": {"Email":"weichuangxxb@qq.com","QQ":"371990778","WeChat":"GoOps"} ,"Skills": [ {"name":"Python","type":"dev" }, {"name":"Golang","type":"dev" },{"name":"Ansible","type":"ops" },{"name":"Kubernetes","type":"dev" },{"name":"ElasticSearch","type":"ops" }]}'  | jq .Skills[1:3] [  {    "name": "Golang",    "type": "dev"  },  {    "name": "Ansible",    "type": "ops"  } ] ## value 迭代器 .[] ### 前面我们在使用数组的时候通过.Skills 直接获取到了一个数组,而通过.Skills[n:m] 来通


本文地址:IT百科频道 https://www.hkm168.com/tags/942831.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT百科
小编:小易整编
相关文章相关阅读
  • 什么是Linux系统中nc命令?nc命令的用法详解

    什么是Linux系统中nc命令?nc命令的用法详解

    这篇文章主要介绍了linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用。功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小...

  • cmd命令怎么打开?

    cmd命令怎么打开?

    cmd命令的打开方法:1、在电脑桌面中使用“win+r”组合键,打开的“运行”窗口,输入“cmd”命令并回车即可打开;2、打开“开始”菜单,在搜索框中输入“cmd”,点击“cmd.exe”即可打开。CMD一般指命令提示符,命令提示符是在操作...

  • linux命令ls是什么意思

    linux命令ls是什么意思

    在linux中,ls全称“list”,中文意思为“列表”,其主要功能是显示指定工作目录下的内容(列出工作目录所含之文件及子目录),也可以查看文件权限,语法“ls[选项]目录名称”。当ls命令不使用任何选项时,默认只会显示非隐藏文件的名称...

  • 数据库的substr函数用法是什么

    数据库的substr函数用法是什么

    数据库的substr函数用法:1、【substr(str,pos,len)】从pos开始的位置,截取len个字符;2、【substr(str,pos)】pos开始的位置,一直截取到最后。数据库的substr函数用法:1、SUBSTR(st...

  • c语言中pow函数的用法是什么?

    c语言中pow函数的用法是什么?

    在c语言中pow()函数是用来求x的y次幂。x、y及函数值都是double型,其语法为“doublepow(doublex,doubley)”;其中参数“doublex”表示底数;参数“doubley”表示指数。pow()函数...

  • c语言中fun用法详解

    c语言中fun用法详解

    c语言中fun用法详解fun函数是自定义的C/C++语言函数,函数功能多样。该函数名为“函数”英文function的简写,一般在示例和试题中使用,通常在主函数中被调用。C/C++语言中,fun函数通常被主函数所调用。它是指用fun来定义一个...

  • linux 命令mkdir执行什么

    linux 命令mkdir执行什么

    linux命令mkdir执行创建目录,该命令是创建由dirname命名的目录,如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。本教程操作环境:...

  • matlab中zeros函数用法

    matlab中zeros函数用法

    matlab中zeros函数是用于返回一个double类零矩阵,其用法是:1、在命令行窗口中输入“b=zeros(5)”,按回车键可生成一个“5*5”的零矩阵;2、在命令行窗口中输入“b=zeros(3,4)”,并按回车键即可。zeros函...

  • 周排行
  • 月排行
  • 年排行

精彩推荐