json - 使用 jq 从对象中获取 N 个值
问题描述
我正在尝试从以下 json 对象中检索给定数量的值(为简洁起见仅使用 2):
[
{
"content": null,
"deleted": false,
"metadata": null,
"name": "name/windows-2016-osDisk.170b8936-d66d-4139-a409-26f4e9d354fe.vhd",
"properties": {
"appendBlobCommittedBlockCount": null,
"blobTier": "P10",
"blobTierChangeTime": null,
"blobTierInferred": true,
"blobType": "PageBlob",
"contentLength": 136367309312,
"contentRange": null,
"contentSettings": {
"cacheControl": null,
"contentDisposition": null,
"contentEncoding": null,
"contentLanguage": null,
"contentMd5": "-0q970378r08==",
"contentType": "application/octet-stream"
},
"copy": {
"completionTime": null,
"id": null,
"progress": null,
"source": null,
"status": null,
"statusDescription": null
},
"creationTime": "2019-11-21T08:34:33+00:00",
"deletedTime": null,
"etag": "0237502375",
"lastModified": "2019-11-21T08:34:33+00:00",
"lease": {
"duration": null,
"state": "available",
"status": "unlocked"
},
"pageBlobSequenceNumber": null,
"remainingRetentionDays": null,
"sequenceNumber": 1,
"serverEncrypted": true
},
"snapshot": null
},
{
"content": null,
"deleted": false,
"metadata": null,
"name": "name/windows-2019-osDisk.f122fb3c-0edb-42a8-b98c-56657b447f15.vhd",
"properties": {
"appendBlobCommittedBlockCount": null,
"blobTier": "P10",
"blobTierChangeTime": null,
"blobTierInferred": true,
"blobType": "PageBlob",
"contentLength": 136367309312,
"contentRange": null,
"contentSettings": {
"cacheControl": null,
"contentDisposition": null,
"contentEncoding": null,
"contentLanguage": null,
"contentMd5": "0237502375/hKOg==",
"contentType": "application/octet-stream"
},
"copy": {
"completionTime": null,
"id": null,
"progress": null,
"source": null,
"status": null,
"statusDescription": null
},
"creationTime": "2019-11-21T08:35:03+00:00",
"deletedTime": null,
"etag": "20397520i3h523",
"lastModified": "2019-11-21T08:35:03+00:00",
"lease": {
"duration": null,
"state": "available",
"status": "unlocked"
},
"pageBlobSequenceNumber": null,
"remainingRetentionDays": null,
"sequenceNumber": 1,
"serverEncrypted": true
},
"snapshot": null
}
]
我在 jq 中对 creationTime 进行排序,如下所示:jq 'sort_by(.properties.creationTime)'
当我通过 make 管道时| .[].name
,jq 'sort_by(.properties.creationTime) | .[].name
我得到一个排序的名称列表。
我的问题是:如何将整数传递给此命令并从最近创建的(底部)开始删除这些名称?
解决方案
遵循 https://stedolan.github.io/jq/manual/v1.6/#Builtinoperatorsandfunctions
切片应该起作用:
jq 'sort_by(.properties.creationTime) | .[-1:]'
推荐阅读
- javascript - 运算符 '<' 不能应用于类型 'Date' 和 'number'.ts(2365)
- arrays - Laravel 多维数组收集对象值
- ios - 首次使用 NEHotSpotConfiguration 无法加入 Wifi
- python - ctypes,python3.8:OSError:异常:访问冲突写入0x00000000
- c# - 如何使用 MS Graph API 获取组织中的所有部门
- typescript - TypeScript 为 Semantic UI fullTextSearch 参数错误地抛出错误 TS2769
- c++ - C++ 如何将字符串 YYYYMMDD 转换为时间戳
- jsf - 从使用与变量本身不同的参数声明的 JSF 页面调用 setter
- python - 打开所有匹配正则表达式的文件 - python
- c# - 防止状态更改更新