微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使用jq从json输出中获取键值

我有一个文件如下所示:
{
  "repositories": [
   {
    "id": "156c48fc-f208-43e8-a631-4d12deb89fa4","namespace": "rhel12","namespaceType": "organization","name": "rhel6.6","shortDescription": "","visibility": "public"
   },{
    "id": "f359b5d2-cb3a-4bb3-8aff-d879d51f1a04","name": "rhel7","visibility": "public"
   }
  ]
 }

我想在新行中只获取每个名称值,以便我可以在读取-r行时使用.
我只需要

rhel6.6 
rhel7

我使用jq如下似乎不起作用:

jq -r '.[].name'

在这里建议正确使用jq

解决方法

您需要通过|组合过滤器操作符:
$jq -r '.[] | .[] | .name' test.json 
rhel6.6
rhel7

一个.[]获取存储库数组.下一个.[]获取存储库数组的所有项.最后,.name从数组项(对象)中提取属性.

注意,第一个.[]适用于对象,因为它是一个记录的功能

.[]
    If you use the .[index] Syntax,but omit the index entirely,it
    will return all of the elements of an array...

    You can also use this on an object,and it will return all the
    values of the object.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐