@slhck 对这个类似的问题提供了有用的答案。
此代码用于从文本文件中读取 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