2016-02-05 2 views
0

Привет, я пытаюсь использовать wget для загрузки самой последней версии обновления для McAfee, и у меня возникают проблемы с выделением файла .tar. Это то, что у меня есть:Как использовать wget для загрузки самого последнего файла на сайте?

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) 

Когда мне это нужно, чтобы быть просто самый recent.tar файл в период между <a> </a>, который в этот случай будет avvdat-8066.tar. Может кто-то, пожалуйста, помогите мне с greping правильным .tar Я не слишком хорош с регулярным выражением или sed.

+0

Все я получаю, когда я бегу, что команда: 'avvdat-8066.tar"> avvdat-8066.tar (95385600 байт) 'Как на самом деле , глядя на него через 'ftp', только' avvdat-8066.tar' находится в этом месте. – user3439894

ответ

0

Попробуйте это,

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

Я предлагаю изменить ваше регулярное выражение grep, чтобы он извлекал только имя файла, а затем использовал сортировку для сортировки результатов и хвоста, чтобы отбросить все, кроме последнего.

wget -q -O - ftp://ftp.mcafee.com/pub/antivirus/datfiles/4.x/ | grep -o -m 2 "avvdat-[^\'\"]*" | sort | tail -1 
Смежные вопросы