这是为了搜索等同于“影响”的策略。但是,它只会拉出对象本身。jq '.techniques[] | select(.tactic == "impact")'
在使用像jq '. | select(.techniques[].tactic == "impact")'这样的东西遍历json时,没有办法使用select吗?我猜问题是这样的东西,即使它工作,仍然不会明确地说离开之前的项目。
手动重建父级是不可行的。
输入
{
"viewMode": 0,
"hideDisabled": false,
"techniques": [
{
"name": "john",
"tactic": "reconnaissance"
},
{
"name": "jane",
"tactic": "impact"
},
{
"name": "jill",
"tactic": "execution"
}
],
"karma": "yes"
}期望输出
{
"viewMode": 0,
"hideDisabled": false,
"techniques": [
{
"name": "jane",
"tactic": "impact"
}
],
"karma": "yes"
}如果这是补救性的,不需要回应,我会弄清楚并更新。这似乎是最基本的事情。我还将执行!=,这也可以正常工作,但不能捕获整个正文。
我尝试过使用变量来做这件事,这让我更接近;
jq '{techniques: [.techniques[] | select(.tactic == "impact")]} as $a| $a' test.json然而,试图给数组添加一个关键“技术”会毁掉我使用它的能力;
jq '{techniques: [.techniques[] | select(.tactic == "impact")]} as $a| $a + [.]' test.json
jq: error (at test.json:19): object ({"technique...) and array ([{"viewMode...) cannot be added发布于 2021-03-31 00:15:14
|=是你的朋友。
.techniques |= map(select(.tactic == "impact"))https://stackoverflow.com/questions/66874366
复制相似问题