У меня проблемы с фильтрацией и обновлением содержимого файла json с использованием jq. Мне нужно отфильтровать данные JSON на основе определенных значений и на основе этого фильтра редактировать другие значения и увеличивать другие
Я пытался использовать
jq '.[] | select (."name"| contains("CHANNEL1"))'
для фильтрации, но в результате отсутствуетверхняя клавиша "x-ID.0" info, результат следующий:
{
"_file.name": "filename.ext",
"name": "CHANNEL1 HD TV",
"logo": "file.png",
"x-channelID": "726"
}
{
"_file.m3u.name": "filename.ext",
"name": "CHANNEL1 SD",
"logo": "file.png",
"x-channelID": "726"
}
Для перенумерации я проверил функцию ниже, и она хорошо работает
jq -n -s '[ foreach inputs[] as $i (100; .+1; $i*{"x-channelID":(.-1)}) ]'
Воторигинальный файл json
{
"x-ID.0": {
"_file.name": "filename.ext",
"name": "CHANNEL1 HD TV",
"logo": "file.png",
"x-channelID": "726"
},
"x-ID.2": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL2",
"logo": "file.png",
"x-channelID": "106"
},
"x-ID.3": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL3 SD",
"logo": "file.png",
"x-channelID": "236"
},
"x-ID.4": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL1 SD",
"logo": "file.png",
"x-channelID": "726"
},
"x-ID.5": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL2 HD",
"logo": "file.png",
"x-channelID": "726"
}
}
вот ожидаемый результат
{
"x-ID.0": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL1 HD",
"logo": "CHANNEL1.png",
"x-channelID": "100"
},
"x-ID.4": {
"_file.m3u.name": "filename.ext",
"name": "CHANNEL1 SD",
"logo": "CHANNEL1.png",
"x-channelID": "101"
}
}
Спасибо за вашу помощь!