Можно ли отфильтровать весь массив элементов в JQ всего за один проход?Сравните следующий код, который запускается jq
снова и снова:
{
"foofoo": {
"barbar": [
{
"foo": "aaaa",
"bar": 0000
},
{
"foo": "bbbb",
"bar": 1111
},
{
"foo": "cccc",
"bar": 2222
}
]
}
}
массив bash:
array=("1111" "2222")
мой код работает, но не очень эффективно и использует много ресурсов, учитываяразмер массива в реальности:
for k in "${array[@]}"; do
jq --argjson k "$k" '.foofoo.barbar |= map(select(.bar != $k))' json.json | sponge json.json
done
Он продолжает циклически проходить по массиву, удаляя ненужные записи и снова сохраняя тот же файл с помощью губки.
любые идеи, как добиться аналогичного поведения сболее легкий код?
Желаемый вывод:
{
"foofoo": {
"barbar": [
{
"foo": "aaaa",
"bar": 0
}
]
}
}