bash字符串插值WGET



我正在尝试使用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有完整的路径。

相关内容

  • 没有找到相关文章

最新更新