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

前端之家收集整理的这篇文章主要介绍了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.

猜你在找的Linux相关文章