专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

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] 来通


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


百科问答
小编:小易整编
相关文章相关阅读
  • 虚拟机关机命令poweroff方法

    虚拟机关机命令poweroff方法

    虚拟机是虚拟技术。许多用户将使用虚拟机上的命令自定义操作关机,使其方便快速,有更多的时间来处理其他事情,然后没有其他更容易的Poweroff应该不是命令?让我们来看看。虚拟机命令Poweroff方法首先,Poweroff.1,Powerof...

  • Dota单机常用命令

    Dota单机常用命令

    操作方法01在找不到队友一起开黑或者想一个人享受Dota虐人的时候,单机是个不错的选择,而且即使被电脑推到家里,也不怕会输掉比赛,因为我们有秘籍,问问电脑“whosyourdaddy”就可以完虐AI...

  • CAD怎么使用偏移命令

    CAD怎么使用偏移命令

    在使用CAD绘图时,我们必须学会使用CAD的各种操作命令,只有这样才能提高我们的工作效率,下面我们就来看看CAD偏移命令是如何使用的吧。操作方法01首先我们把CAD这款软件打开,然后在菜单里找到绘图里...

  • DIR命令怎么用

    DIR命令怎么用

    DIR命令用于显示磁盘目录所包括的内容。命令格式有:DIR[文件名][选项]。该命令有很多选项。例如:/A表示显示所有的文件(包括隐藏文件);/S表示显示指定目录和所以子目录下的文件;/B表示只显示文件名。操...

  • 手机蓝牙的作用和用法(手机蓝牙有什么用途)

    手机蓝牙的作用和用法(手机蓝牙有什么用途)

    每部手机上都有一个蓝牙功能,大家以前都会用它来传输文件,不过随着移动网络和WiFi的普及,这个功能也渐渐被大家忽略了。今天,我们就来科普一些手机蓝牙不为人知的功能,让大家可以更好的使用这一功能。1、传输文件传输文件,这一功能应该是大家最熟悉...

  • Ubuntu如何使用dpkg命令卸载软件

    Ubuntu如何使用dpkg命令卸载软件

      本经验以卸载Ubuntu下的办公软件libreoffice为例子,演示怎样使用dpkg进行卸载软件。  查看安装的软件  1、查看dpkg的帮助。  选择dpkg-l来查看软件的状态。  选择dpkg-P来卸载软件。因为dpkg...

  • 磁盘阵列raid5的用法

    磁盘阵列raid5的用法

    操作方法01在日常应用中,大多是把服务器上所有的硬盘创建RAID5,并且只划分了一个“逻辑磁盘”,这样从理论上来讲没有任何问题,在实际中也可以可以使用的,但是这种方法并不可取。RAID5是一种存储性...

  • C语言while语句的用法

    C语言while语句的用法

    while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体。#includeintmain(void){inti,sum=0;i=1;while(i...

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

精彩推荐