Linux 递归模式下的Wget输出

Linux 递归模式下的Wget输出,linux,bash,shell,command-line,wget,Linux,Bash,Shell,Command Line,Wget,我正在使用wget-r从指定的网页下载3.zip文件。以下是我到目前为止的情况: wget -r -nd -l1 -A.zip http://www.website.com/example 现在,zip文件都以abc.*.zip开头,其中*似乎是随机的。我希望下载的第一个文件名为xyz_1.zip,第二个文件名为xyz_2.zip,第三个文件名为xyz_3.zip 这在wget中是可能的吗 非常感谢 我认为单凭wget是不可能的。下载后,您可以使用一些简单的shell脚本来重命名文件,如:

我正在使用wget-r从指定的网页下载3.zip文件。以下是我到目前为止的情况:

 wget -r -nd -l1 -A.zip http://www.website.com/example
现在,zip文件都以abc.*.zip开头,其中*似乎是随机的。我希望下载的第一个文件名为xyz_1.zip,第二个文件名为xyz_2.zip,第三个文件名为xyz_3.zip

这在wget中是可能的吗


非常感谢

我认为单凭
wget
是不可能的。下载后,您可以使用一些简单的shell脚本来重命名文件,如:

i=1; for f in abc_*.zip; do mv "$f" "xyz_$i.zip"; i=$(($i+1)); done

我认为没有一种方法可以在一个wget命令内完成

wget确实有一个
-O
选项,您可以使用它来告诉它要输出到哪个文件,但它在您的情况下不起作用,因为多个文件将连接在一起

您必须编写一个脚本,将文件从
abc_*.zip
重命名为
xyz_*.zip


或者,一次为一个zip文件调用wget,并使用
-O
选项。

尝试先获取列表,然后分别下载每个文件

let n=1
wget -nv -l1 -r --spider http://www.website.com/example 2>&1 | \
egrep -io 'http://.*\.zip'| \
while read url; do 
    wget -nd -nv -O $(echo $url|sed 's%^.*/\(.*\)_.*$%\1%')_$n.zip "$url"
    let n++
done

它如何知道重命名它们的顺序?我希望下载的第一个文件名为xyz_1.zip,依此类推。谢谢