【发布时间】:2021-01-11 16:29:35
【问题描述】:
我有以下 JSON 文件:
{
"filter": [
{
"id": "id_1",
"criteria": {
"from": "mail@domain1.com",
"subject": "subject_1"
},
"action": {
"addLabelIds": [
"Label_id_1"
],
"removeLabelIds": [
"INBOX",
"SPAM"
]
}
},
{
"id": "id_2",
"criteria": {
"from": "mail@domain2.com",
"subject": "subject_1"
},
"action": {
"addLabelIds": [
"Label_id_2"
],
"removeLabelIds": [
"INBOX",
"SPAM"
]
}
}
]
}
我想提取电子邮件值:mail@domain1.com 和 mail@domain2.com
我试过这个命令:
jq --raw-output '.filter[] | select(.criteria.from | test("mail"; "i")) | .id'
但不起作用,我收到此错误:
jq: error (at <stdin>:1206): null (null) cannot be matched, as it is
not a string exit status 5
还有一点:如何显示“id”键的值,其中“from”键值=mail@domain1.com?
所以在我的文件中 id = id_1
你有什么想法吗?
【问题讨论】:
-
匹配电子邮件的模式是什么?当有匹配时,您是只想保留电子邮件还是要保留整个对象?
标签: jq