我正在尝试使用WGET下载文件,由于某些原因,我认为我遇到了字符串插值问题。我有一个要下载的文件列表,该文件已成功解析等(对我来说不是很小的壮举),并希望将它们整合到for loop wget语句组合中,以下载这些文件。
请原谅我的URL对您不起作用,因为密码和数据已更改。
我尝试了单引号和双引号,并逃脱了URL中的几个字符(我假定的the'amp os @s和 @s属于此。
list of files
files.txt
/results/KIDFROST@LARAZA.com--B627-.txt.gz
/results/KIDFROST@LARAZA.com--B626-part002.csv.gz
/results/KIDFROST@LARAZA.com--B62-part001.csv.gz
wget
语句用作单个命令
wget -O files/$i "https://tickhistory.com/HttpPull/Download? user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=/results/KIDFROST@LARAZA.com--N6265-.txt.gz"
但是循环不起作用
for i in `cat files.txt`; do
wget -O files/$i "https://tickhistory.com/HttpPull/Download? user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=$i"
done
编辑:主要问题是" files/$i"
,而不是"files$i"
(请参阅注释)
不要使用for-loop/cat来读取文件,请使用一定的/读取循环。缓冲区跨流量/拆分/等的问题更少...
while read -r i; do
wget -O "files$i" "https://tickhistory.com/HttpPull/Download? user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=$i"
done < files.txt
还要确保引用变量以防止扩展/分裂错误。也不真正确定您为什么要进行files/$i
,因为$i
有完整的路径。