У меня есть словарь, который выглядит следующим образом:
cat dictionary.json
[
{
"key": "key01",
"value": "value01"
},
{
"key": "key02",
"value": "value02"
},
{
"key": "key03",
"value": "value03",
"extraProperty": {
"foo": "bar"
}
},
{
"key": "key04",
"value": "value04"
}
]
Тогда у меня есть массив, который:
echo $array
key01 key02 key03
Ожидаемый результат:
value01 value02 value03
У меня возникли проблемы с созданием jq с использованием массива, отличного от формата json.
Я пробовал разные решения, которые нашел, но ни одно из них не сработало.
Этот пост jq - Как выбрать объекты на основе «белого» списка значений свойств , кажется, решает аналогичную проблему, но не работает с моим вводом:
echo $array | jq --argfile whitelist dictionary.json 'select(any(.key== $whitelist[]; .value))'
parse error: Invalid numeric literal at line 1, column 6
Я тоже пытался использовать
jq -n --arg array $array --argfile whitelist dico.json 'select(any(.key== $whitelist[]; .valuee))'
jq: error: key02/0 is not defined at <top-level>, line 1:
key02
jq: 1 compile error
Спасибо!