首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在jq json bash脚本中解析多个带空格的属性?

在jq、JSON和bash脚本中解析多个带空格的属性可以通过以下步骤实现:

  1. 使用jq解析JSON数据:jq是一个轻量级的命令行JSON处理工具,可以用于过滤和转换JSON数据。首先,确保已经安装了jq工具。
  2. 创建一个bash脚本:使用文本编辑器创建一个新的bash脚本文件,例如parse_json.sh。
  3. 在脚本中定义JSON数据:在脚本中定义包含多个带空格属性的JSON数据。例如:
代码语言:txt
复制
json_data='{
  "属性 1": "值 1",
  "属性 2": "值 2",
  "属性 3": "值 3"
}'
  1. 使用jq解析JSON数据:在脚本中使用jq命令解析JSON数据。例如,使用jq的.属性语法获取属性值:
代码语言:txt
复制
属性_1=$(echo $json_data | jq -r '.["属性 1"]')
属性_2=$(echo $json_data | jq -r '.["属性 2"]')
属性_3=$(echo $json_data | jq -r '.["属性 3"]')
  1. 打印解析结果:使用echo命令打印解析的属性值。
代码语言:txt
复制
echo "属性 1: $属性_1"
echo "属性 2: $属性_2"
echo "属性 3: $属性_3"

完整的脚本如下所示:

代码语言:txt
复制
#!/bin/bash

json_data='{
  "属性 1": "值 1",
  "属性 2": "值 2",
  "属性 3": "值 3"
}'

属性_1=$(echo $json_data | jq -r '.["属性 1"]')
属性_2=$(echo $json_data | jq -r '.["属性 2"]')
属性_3=$(echo $json_data | jq -r '.["属性 3"]')

echo "属性 1: $属性_1"
echo "属性 2: $属性_2"
echo "属性 3: $属性_3"

这样,你就可以在jq、JSON和bash脚本中成功解析多个带空格的属性了。

请注意,以上答案中没有提及任何特定的云计算品牌商,如有需要,可以根据具体情况选择适合的云计算服务提供商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell常用命令使用说明

sed 可依照脚本指令来处理、编辑文本文件。 Sed 主要用来自动编辑一个或多个文件、简化对文件反复操作、编写转换程序等。.... # 匹配一个非换行符任意字符,:/s.d/匹配s后接一个任意字符,最后是d。 - * # 匹配0个或多个字符,:/*sed/匹配所有模板是一个或多个空格后紧跟sed行。...-type f -size +50m -size -100m jq命令使用 jq 是 stedolan 开发一个轻量级和灵活命令行JSON处理器,源码请参考 jq 项目主页 jq 用于处理JSON...| jq .metadata.managedFields[0].apiVersion "v1" 3、keys: 获取数组键 cat test.json | jq '.metadata.managedFields...-f scripfile or –file scriptfile 从脚本文件读取awk命令。

4.6K20

用shell写ssh快速链接工具-2.0

有这两个框框,就已经可以满足我需求啦,现在就可以写了 写ssh配置文件 之前写配置文件看起来不是很清晰,添加起来比较容易出错,现在我使用json格式文件来保存多个ssh配置,它看起来是这样:...,每一个数组代表一个分组,name是分组信息,server是这个组里ssh配置,可以有多个。...现在配置文件写完了,我们看一下怎么在shell里解析json 在shell脚本解析json 这里我是用用 jq 这个工具来做,当然这个jq 不是 jquery。...我用上面写ssh配置举例: 1:取出数组第一个元素 jq .[0] ssh.json 结果: { "name": "何白白", "server": [ { "name":...1:首先我们需要将json数组每个对象name属性找出来 这样写: for i in $(seq `jq length $config_file`) do index=`expr $i -

2.1K30

0523-5.15-为Cloudera Manager配置自定义告警脚本

Publisher服务所在节点安装了jq命令,主要用于解析JSON格式数据。...由于Alert Publisher服务通过自定义告警脚本方式输出告警内容为json格式,为了能够方便解析 1.在Cloudera Manager服务器上安装JQ命令,用于解析JOSN数据文件 [root...2.在Linux上可以通过jq命令方便解析JSON数据,如下所示: [root@cdh1 script]# cat alert_test.log | jq -r '.[].body.alert.attributes...4 告警脚本测试 1.在集群手动kill掉几个服务进程 ?...目录下生成一个临时告警原始文件,文件内容为JSON格式 3.通过自定义告警脚本将原始告警解析后,在脚本还可以将解析告警通过HTTP或其他采集方式将告警上报 4.Fayson在文章解析JSON格式数据使用到了

1.9K10

根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID

io.kubernetes.pod.name"' } pid=$1 Check_jq Pod_name_info 上面 Shell 脚本需要服务器上安装 jq 命令,因为脚本依赖 jq 来处理 json...其采用完全独立于语言文本格式,具有方便人阅读和编写,同时也易于机器解析和生成。这些特性决定了 JSON 格式越来越广泛应用于现代各种系统。...作为系统管理员,在日常工作无论是编辑配置文件或者通过 http 请求查询信息,我们都不可避免要处理 JSON 格式数据。 jq 是一款命令行下处理 JSON 数据工具。...其可以接受标准输入,命令管道或者文件 JSON 数据,经过一系列过滤器(filters)和表达式转后形成我们需要数据结构并将结果输出到标准输出。...jq 这种特性使我们可以很容易地在 Shell 脚本调用它。 演示 运行方式 # 通过 Pid 获取 Pod 名称 $ ./pod_name_info.sh Pid 下面展示输出结果 ?

3.3K50

命令行上数据科学第二版:八、并行管道

清单文件一个更详细替代是find,其中: 可以向下遍历目录 允许对诸如大小、访问时间和权限等属性进行详细搜索 处理特殊字符,空格和换行符 例如,下面的find调用列出了目录/data下扩展名为csv...➋ 对于每个呼叫,使用jq提取行政区名称。 ➌ 将区名转换成小写,并用下划线替换空格(因为awk默认情况下会在空格上拆分)。 ➍ 用sort和uniq统计每个区出现次数。...如果引用变得太混乱,记得你把管道放到一个单独命令行工具,就像我用add做那样 在这个过程,如果您在一台远程机器上运行ls,您会看到parallel确实传输(并清理)了二进制文件jqJSON 文件和...清单文件一个更详细替代是find,其中: 可以向下遍历目录 允许对诸如大小、访问时间和权限等属性进行详细搜索 处理特殊字符,空格和换行符 例如,下面的find调用列出了目录/data下扩展名为csv...➋ 对于每个呼叫,使用jq提取行政区名称。 ➌ 将区名转换成小写,并用下划线替换空格(因为awk默认情况下会在空格上拆分)。 ➍ 用sort和uniq统计每个区出现次数。

4.4K10

linux 文本工具使用小技巧

运行原理: 第一步:运行BEGIN{ commands }语句块语句。通常用于变量初始化、打印输出表格表头等语句通常能够写在BEGIN语句块。可选语块。...print函数 print 后面可以跟多个参数,类似python print方法,各参数用空格分开" ",以下是代表各种变量意义: $0 当前记录(这个变量存放着整个行内容) $1~$n 当前记录第...n个字段,字段间由FS分隔 FS 输入字段分隔符 默认是空格或Tab NF 当前记录字段个数,就是有多少列 NR 已经读出记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加。...符号用来表示对作为表达式输入整个 JSON 对象引用。 单个'.'表示当前一级目录下属性名称 访问特定数组元素操作,'....命令后面可以双引号也可以不带 查看容器配置,比如镜像名称、环境变量、entrypoint: docker inspect kubelet | jq .[].Config

1.5K20

jq工具简介

jq 是一个轻量级命令行工具,用于处理和转换 JSON 数据。它设计灵感来自于传统 Unix 工具, sed 和 awk,但用于 JSON 数据。...选择数据jq 允许您选择 JSON 数据特定字段或属性。您可以使用 .fieldName 或 ['fieldName'] 来选择字段。...例如:echo '[1, 2, 3]' | jq 'map(. * 2)'这将输出:[2, 4, 6]4. 迭代jq 具有强大迭代功能,可以处理 JSON 数组多个元素。...JSON 结构操作jq 支持 JSON 结构操作,合并、拆分、过滤、排序等。这使得处理复杂 JSON 数据更加方便。7. 管道和组合您可以将多个 jq 命令连接起来,以实现更复杂数据处理任务。...这使得可以创建复杂管道来处理 JSON 数据。8. 脚本模式除了命令行模式,jq 也支持脚本模式,允许您编写复杂 jq 脚本来处理 JSON 数据。9.

23920

巧用 shell-operator 配置 K8s Pod 保护策略

Shell-operator 是一个在 Kubernetes 集群运行事件驱动脚本工具。...Shell-operator 通过将脚本视为由事件触发钩子,提供了 Kubernetes 集群事件和 Shell 脚本之间集成层。您可以将其视为 operator-sdk,但用于脚本。...Shell-operator 提供了以下功能: Kubernetes 集群简易管理:使用运维人员熟悉工具。可以是 bash、python、kubectl 等,真是运维人实用工具。...对象选择器和属性过滤器:shell-operator 可以监视特定对象集,并检测其属性更改。 简单配置:钩子绑定定义是脚本标准输出 JSON 或 YAML 文档。.../usr/bin/env bash NAMESPACE="prod" ARRAY_COUNT=$(jq -r '. | length-1' $BINDING_CONTEXT_PATH) run_hook

7610

shell getopt「建议收藏」

getopt是用来解析传入shell命令行参数,它可以支持 ‘rm -r’ ’-r’形式参数解析。...是待解析参数(shell传入参数) -o选项后面的optstring用来指示解析parameters方式 来看一个简单例子 getopt -o a: -- -a para_a 对应到命令格式...getopt可以使用-l来指定长选项。-l后也可以指定多个选项,多个选项之间以逗号分隔。长选项一般以--接上长选项名称。...# 下面一句 $@ 是shell脚本传入参数 TEMP=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \ -n 'example.bash' -...这意思就是在示例eval命令是用来保留一些特殊字符,空格。 感觉这里eval作用和双引号有点像,然后在代码注释,还有两处essential。

1.5K20

工具| jq 玩转JSON数据利器

一简介 JSON是计算机程序通讯一种常见格式。在我们日常运维或者开发过程中经常需要解析json文件 ,但是部分文件内容有非常不利于人工阅读。如何解决呢?jq来帮忙。...其可以接受标准输入,命令管道或者文件 JSON 数据,经过一系列过滤器(filters)和表达式转后形成我们需要数据结构并将结果输出到标准输出,从而帮助我们很好解析json数据。...对象最后一个属性末尾或者数组最后一个元素末尾不能有逗号。否则 jq 会抛出无法解析 JSON 错误。...对象属性。..." } $ cat 1.json| jq '.[0].key1'## 获取指定key 对应value "v1" 内建函数 jq还有一些内建函数 keys,has $ cat test.json

3.7K20

JSON神器之jq使用指南指北

jq 输入被解析为一系列以空格分隔 JSON 值,一次一个地通过提供过滤器。过滤器输出被写入标准输出,同样是一系列以空格分隔 JSON 数据。 注意:注意 shell 引用规则很重要。...无法解析输入 JSON 文本将被忽略(但警告),丢弃所有后续输入,直到下一个 RS。此模式还解析 jq 输出而不使用该--seq 选项。...使用此选项将通过将每个 JSON 对象放在一行来生成更紧凑输出。 --tab: 每个缩进级别使用一个制表符,而不是两个空格。...流式操作 使用--stream选项 jq 可以以流方式解析输入文本,允许 jq 程序立即开始处理大型 JSON 文本,而不是在解析完成后。...红色) 32(绿色) 33(黄色) 34(蓝色) 35(洋红色) 36(青色) 37(白色) 高级用法示例 打印jsonaround属性OtherCars属性数组第12个元素大于0数组,其中点号表示当前节点即

28.1K30

Shell脚本入门需要注意几个问题

比如: 接口测试 系统环境初始化 应用自动化部署 系统管理/监控(日志清理、服务管理、资源监控等) …… Linux下Shell脚本 ,相较于Windowsbat脚本,简直友好不是一般,在Linux...${userinfo}" | jq -r .[0].uenable) -ne 1 ];then sendMsg 1 "用户key ${ukey} 已被禁用,请联系管理员开通" fi for 循环默认是以空格...x 权限,在调用脚本时,使用 bash xxx.sh 即可 注意 > 和 >> 区别,前者是覆盖原有内容,后者是在原有内容后面追加 脚本运行后切换到脚本所在目录:cd $(dirname $0 Shell...脚本调试:bash -x xxx.sh [[email protected]/* <!.../dev/null 在使用 cat <<EOF 时,<< 和 EOF 之间不能有空格 cat <<EOF 你代码 EOF exit 0 :如果你脚本满足条件直接退出,可以在语句执行完后加上这句,

18930

Shell脚本备忘录

=赋值时候,两边不能出空格,不然会被认为是命令 1. jq jq可以对json数据进行分片、过滤、映射和转换,和sed、awk、grep等命令一样 1.1 安装 yum -y install jq 1.2...几个常用例子 以这个json结构为例子进行解析,假设文件命名为:json.txt [{ "name": "站长工具", "url": "http://tool.chinaz.com",...cat json.txt | jq '.[0]' 1.2.2 取出数组index=0name内容 cat json.txt | jq '.[0].name' 1.2.3 以key-value格式取出数组...index=0name和city cat json.txt | jq '.[0] | {name:.name, city:.address.city}' 1.2.4 以key-value格式取出所有数组...:显示最后命令执行情况 $# :传递到脚本参数个数 $$ :脚本运行的当前进程 ID 号 $* :以一个单字符串显示所有向脚本传递参数 $!

83710

15 分钟掌握 15 个 Docker 小窍门

world $ docker commit $ID helloworld fd08a884dc79 这种方式在编写脚本时候很有用,比如你想在脚本批量获取id,然后进一步操作。...5. docker inspect输出结果解析利器:jq 要对docker inspect输出结果进行过滤,一般情况下,用grep命令,你需要这样操作: $docker inspect `dl` |...看上去很复杂,用jq吧,专业解析docker inspect输出结果,具有更强可读性,方便易用: $docker inspect `dl` | jq -r ‘.[0].NetworkSettings.IPAddress...实际上,CMD命令是可覆盖,docker run后面输入命令与CMD指定命令匹配时,会把CMD指定命令替换成docker run命令。...或者,像一些高手提议那样,写一个启动脚本,在脚本启动这些后台程序或进程。 15.容器之间进行友好沟通:链接 这是最拉风功能!我把它留到最后压轴!

1.8K50

使用 shell 脚本自动申请进京证 (六环外)

脚本不到 300 行,不太难读,这里就不逐行解说了,捡其中几个关键点说明一下 jq 因为要解析 jsonjq 是必不可少,如果你系统上缺少它,执行脚本会报一行错误: please install...其它用到命令 curl、awk 也都做了检查,防止在一些特殊场合下依赖缺失。 jq 在这里主要有两种用法,一种是解析响应内容;一种是生成请求内容。...在后面的 jq 脚本 (通过 -c 指定),就可以直接使用sfzmhm 来引用这个变量啦,注意使用前缀才是 jq 变量,否则就是字面值,表示 json 字段名。...有几点需要注意: jq 变量不能在 jq 外使用 jq 变量只能用 xxx 形式引用,{xxx} 引用不了 jq 字段名如果包含特殊符号 ( s-source),在使用时需要加双引号,否则...能这样写前提是已经安装 git bashjq for windows,并且将它们所在路径 ( C:\Program Files\Git\bin) 放在 PATH 环境变量

2.9K20

java学习与应用(4.6)--过滤器、监听器、JQuery、AJAX、JSON

属性操作:通用操作:attr获取(传入键)/设置(传入键值)属性,removeAttr删除属性,prop获取/设置属性,removeProp删除属性。...元素固有属性(手册存在属性)使用prop,操作自定义属性使用attr。...) , jq对象.toggle事件切换,传入多个回调函数轮流执行各个回调函数(jq3.0以上版本需要引入插件,该方法位于低版本)。...\$.ajax()传入{}键值对,url请求路径,type请求方式,date携带参数字符串或json格式,success响应成功[返回200]执行回调函数,error发送请求出错执行函数...Java对象和json对象转换: Java对象转为JSON对象使用解析器(Jsonlib、Gson、fastjson,jackson)。

5.4K10
领券