我有一个URI列表:带有
的uri.txtcategory1/image1.jpeg
category1/image32.jpeg
category2/image1.jpeg
依此类推,需要从域example.com下载wget,并附加更改文件名(最后保存)到categoryX-imageY.jpeg
我理解,我应该逐行阅读uri.txt,在每行前加上“http://example.com/”,并在每行中将“/”更改为“ - ”。
我现在拥有的:
我正试着这样做:
wget 'http://www.example.com/{}' -O '`sed "s/\//-/" {}`' < uri.txt
但是wget失败了(这取决于我使用的引用符号类型:`或'):
wget: option requires an argument -- 'O'
或
sed `s/\//-/` category1/image1.jpeg: No such file or directory
sed `s/\//-/` category1/image32.jpeg: No such file or directory
你能告诉我,我做错了吗?
答案 0 :(得分:0)
当我想构建一个要执行的args列表时,我喜欢使用xargs:
cat uri.txt | sed "s#\(.*\)/\(.*\)#http://example.com/\1/\2 -O \1-\2#" | xargs -I {} wget {}
答案 1 :(得分:0)
我将如何做到这一点:
Update a
set LocID = t.newloc
from data_adj a join
#tbl t
on a.LocID = t.oldloc and a.Building = t.building;
换句话说,在执行while read LINE ; do
wget "http://example.com/$LINE" -O $(echo $LINE|sed 's=/=-=')
done < uri.txt
并使用修改名称保存之前,逐行阅读uri.txt
(文本放在$LINE
bash变量中)(我使用另一个{{ 1}}分隔符,以避免转义wget
并使其更具可读性