你如何使用wget下载网站上最新的文件?

时间:2016-02-05 23:29:02

标签: linux bash sed grep wget

您好我正在尝试使用wget将最新版本下载到当天的McAfee补丁程序,并且我遇到了单独输出.tar文件的问题。这就是我所拥有的:

wget -q -O - ftp://ftp.mcafee.com/pub/antivirus/datfiles/4.x/ | grep -o -m 2 "avvdat-[^\']*"

然而,当我运行上述命令时,它给了我:

avvdat-8065.tar">avvdat-8065.tar</a>  (95191040 bytes)
avvdat-8066.tar">avvdat-8066.tar</a>  (95385600 bytes)

当我需要它只是<a> </a>之间的最新.tar文件时,在这种情况下,它将是avvdat-8066.tar。有人可以帮我解决正确的问题。我对正则表达式或sed不太好。

2 个答案:

答案 0 :(得分:0)

我建议修改你的grep正则表达式,使它只检索文件名,然后使用sort对结果进行排序,然后尾部丢弃除最后一个之外的所有文件名。

wget -q -O - ftp://ftp.mcafee.com/pub/antivirus/datfiles/4.x/ | grep -o -m 2 "avvdat-[^\'\"]*" | sort | tail -1

答案 1 :(得分:0)

试试这个,

wget $(wget -q -O - ftp://ftp.mcafee.com/pub/antivirus/datfiles/4.x/ | grep -Eo "ftp://[^\"\]+" | sort | tail -n1)