我有一个文件如下所示:
{ "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.