作爲bash和jq的新手,我試圖在bash腳本中使用jq命令從json文件下載幾個url。使用jq選擇多個json密鑰
我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。請提供有效的輸入和預期的輸出樣本。 –