您好我正在尝试使用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不太好。
答案 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)