当前位置: 首页 > 面试题库 >

在Shell脚本中读取JSON数据

弘和同
2023-03-14
问题内容

在shell中,我有一个要求,我必须读取以下格式的JSON响应:

 { "Messages": [ { "Body": "172.16.1.42|/home/480/1234/5-12-2013/1234.toSort", "ReceiptHandle": "uUk89DYFzt1VAHtMW2iz0VSiDcGHY+H6WtTgcTSgBiFbpFUg5lythf+wQdWluzCoBziie8BiS2GFQVoRjQQfOx3R5jUASxDz7SmoCI5bNPJkWqU8ola+OYBIYNuCP1fYweKl1BOFUF+o2g7xLSIEkrdvLDAhYvHzfPb4QNgOSuN1JGG1GcZehvW3Q/9jq3vjYVIFz3Ho7blCUuWYhGFrpsBn5HWoRYE5VF5Bxc/zO6dPT0n4wRAd3hUEqF3WWeTMlWyTJp1KoMyX7Z8IXH4hKURGjdBQ0PwlSDF2cBYkBUA=", "MD5OfBody": "53e90dc3fa8afa3452c671080569642e", "MessageId": "e93e9238-f9f8-4bf4-bf5b-9a0cae8a0ebc" } ] }

在这里,我只关心“ Body”属性值。我做了一些不成功的尝试,例如:

 jsawk -a 'return this.Body'

要么

 awk -v k="Body" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}

但这还不够。谁能帮我这个?


问题答案:

jq在命令行上有用于解析json的代码:

 jq '.Body'

访问此以获得jq:https://stedolan.github.io/jq/



 类似资料:
  • 问题内容: 我有一个读取输入的Shell脚本 我正在使用JAVA APi执行此Shell脚本 在Java控制台中,我可以看到输出 键入要检查的年份(4位数字),然后按[ENTER]: 现在,如何将值传递到我脚本中的Shell脚本中的实际问题是如何读取变量“ year” 我已经按照建议编辑了代码,但在我们更正的地方无法正常工作 问题答案: 要将执行脚本的Java程序中的值传递给脚本,请使用命令行参数

  • 问题内容: 我正在尝试从下面的JSON文件中获取密钥: 我刚刚执行了以下命令,它将给出以下JSON输出 命令: 输出: 我只想获取以下格式的输出,不确定如何获取。 预期产量: 如何从每个数组中获取键值并像上面一样显示?JIRA-n将根据结果增加。 问题答案: 给定一个数组,您可以用来将索引和值的数组映射到该数组。然后,您可以使用或映射到对象上所需的键和值。 https://jqplay.org/s

  • 问题内容: 我想要类似C的选项。如何仅从命令行读取单个字符输入? 使用命令可以做到吗? 问题答案: 在ksh中,您基本上可以执行以下操作:

  • 问题内容: 我正在尝试将外壳程序脚本中的JSON对象解析为数组。 例如:Amanda,25岁,[http://mywebsite.com] JSON看起来像: 我不想使用任何库,最好是可以使用正则表达式或grep。我已经做好了: 这给了我“名字”:“阿曼达”。我可以为文件中的每一行循环执行此操作,然后将其添加到数组中,但是我只需要右侧而不是整行。 问题答案: 如果您确实无法使用适当的JSON解析器

  • 问题内容: 我想执行以下操作,逐行读取文件并将每行的值用作参数 但是当我执行echo $ CMD时,它只返回cat:S 问题答案: 您所拥有的就是将文本传递到循环中。 您只想要:

  • 终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本。首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的s