Я пытаюсь получить значение на основе значения «содержит» другого ключа в том же объекте
Я уже пробовал код, и он работает, и выводит желаемый результат, но некоторые объекты в JSON не имеют этого ключа, поэтому я получаю:
jq: error (at <stdin>:1): null (null) and string ("BBC") cannot have their containment checked
или причиной этой ошибки являются массивы в других ключах, я не уверен
Использование:
jq '.entries[] | select(.icon | contains("BBC")) | .uuid'
Я хочу получить UUID найденного результата без ошибок и сохранить его в виде переменной в оболочке
"174501xxxxxxxxxxxxxe6342a03"
Входной файл, который передается по каналу
{
"entries":[
{
"uuid":"174501xxxxxxxxxxxxxe6342a03",
"enabled":true,
"autoname":true,
"name":"BBC",
"number":0,
"icon":"file:///logos/BBC.png",
"icon_public_url":"imagecache/1097",
"epgauto":true,
"epggrab":[ ],
"dvr_pre_time":0,
"dvr_pst_time":0,
"epg_running":-1,
"services":[ ],
"tags":[ ],
"bouquet":""
},
{
"uuid":"174501xxxxxxxxxxxxxe6342a04",
"enabled":true,
"autoname":true,
"name":"ABC",
"number":0,
"icon_public_url":"imagecache/1098",
"epgauto":true,
"epggrab":[ ],
"dvr_pre_time":0,
"dvr_pst_time":0,
"epg_running":-1,
"services":[ ],
"tags":[ ],
"bouquet":""
}...