如何从不同的 URL 下载多个 XML 文件

如何从不同的 URL 下载多个 XML 文件

@slhck 对这个类似的问题提供了有用的答案。

使用 wget 下载多个文件并处理参数

此代码用于从文本文件中读取 URL文件列表,然后运行循环来下载每一个。

    #!/usr/bin/env bash 
    while read line 
      do   
        wget -c --load-cookies cookies.txt $line -O ${line##*/} 
    done < filelist

 

由于我不熟悉 shell 脚本,我想知道您是否可以通过以下方式下载多个 xml 文件:

  • 创建一个简单的逗号分隔的文本文件文件列表
  • 读自:

文件列表

重命名文件.xml,url-01.php
重命名文件Different.xml,url-02.php
具体文件Rename.xml,“url-03”
新文件名称.xml,“url-04”

  • 读完每一行
  • 将行拆分为 newfile、remoteFile
  • 然后运行:  

    wget -O newfile remoteFile >/dev/null 2>&1 
    

 

是否可以在 shell 脚本中编写此脚本?您能提供一个例子吗?

答案1

要获取逗号前的文本,请使用${line/,*}

(这实际上做的是替换“,*”或从逗号开始的所有文本空字符串- 仅保留逗号之前的字符串部分)

要获取逗号后面的文本,请使用${line/*,}

因此完整命令如下:

while read line
  do
    wget -O ${line/,*} ${line/*,} >/dev/null 2>&1 
done < filelist

或者,在一行中:

while read line; do echo wget -O ${line/,*} ${line/*,} >/dev/null 2>&1; done < filelist

在 Windows 中(假设您已经安装了 wget,来自http://gnuwin32.sourceforge.net/packages/wget.htm,并正确设置你的路径),它将是:

for /f "delims=, tokens=1*" %a in (filelist) do wget -O %a %b

相关内容