2
我正在尝试使用JQ命令筛选JSON对象以选择性地提取密钥。下面是我放在文件x.txt一个样本对象:JQ:筛选密钥
{
"activities" : {
"-KSndgjqvmQkWVKHCpLh" : {
"create_device" : "...",
"stop_time_utc" : "2016-11-01T23:08:08Z"
},
"-KSoBSrBh6PZcjRocGD7" : {
"create_device" : "..."
},
"-KSptboGjo8g4bieUbGM" : {
"create_device" : "...",
"stop_time_utc" : "2017-01-17T23:08:08Z"
}
}
}
以下命令可以提取所有活动键:
cat x.txt | jq '.activities | keys'
[
"-KSndgjqvmQkWVKHCpLh",
"-KSoBSrBh6PZcjRocGD7",
"-KSptboGjo8g4bieUbGM"
]
我一直在谷歌上搜索并尝试了几几小时尝试过滤对象以仅选择具有stop_time_utc值的活动条目,并使用类似于“select(.stop_time_utc | fromdateiso8601> now)”的选项来仅挑选已过期的活动。例如,我想使用过滤器只用一个相关条目的采样对象创建磁盘阵列:
[
"-KSndgjqvmQkWVKHCpLh"
]
与键选择了错误的路线尝试呢?任何想法或建议将不胜感激。
感谢
感谢@peak指向with_entries的指针!以下是我现在用来提取过期活动名称的完整命令: jq'.activities | with_entries(select(.value | has(“stop_time_utc”)))| with_entries(select(.value.stop_time_utc | fromdateiso8601?
DThimsen