Как новичок в bash и jq, я пытался загрузить несколько URL-адресов из json-файла с помощью команды jq в сценариях bash.Выбор нескольких json-ключей с помощью jq
Мой items.json файл выглядит следующим образом:
[
{"title" : [bob], "link" :[a.b.c]},
{"title" : [alice], "link" :[d.e.f]},
{"title" : [carol], "link" :[]}
]
что я изначально делал просто фильтровать непустой ссылку и поместить их в массив, а затем загрузить массив:
#!/bin/bash
lnk=($(jq -r '.[].link[0] | select (.!=null)' items.json))
for element in ${lnk[@]}
do
wget $element
done
Но проблема такого подхода заключается в том, что все загруженные файлы используют ссылку в качестве имен файлов.
Я хочу фильтровать json-файл, но все же сохраняю название с помощью ссылки, чтобы я мог переименовать файл в команде wget. Но я не знаю, какую структуру я должен использовать здесь. Итак, как я могу сохранить заголовок в фильтре и использовать его после?
Предоставленный "items.json" файл недействителен JSON. Укажите действительный ввод и ожидаемый выходной образец. –