Я пытаюсь написать сценарий оболочки, чтобы получить динамический URL, по которому ComboFix находится по адресу BleepingComputer.com/download/combofix
Тем не менее, по какой-то причине я не могу заставить свое регулярное выражение соответствовать ссылке на скачивание "нажмите здесь", если загрузка не работает. Я использовал тестер регулярных выражений, и он сказал, что сопоставил ссылку, но я не могу заставить ее работать, когда я выполняю ее, это приводит к пустому результату. Вот весь мой сценарий:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Listing.html "http://www.bleepingcomputer.com/download/combofix/" -nv
downloadpage=$(sed -ne 's@^.*<a href="\(http://www[.]bleepingcomputer[.]com/download/combofix/dl/[0-9]\+/\)" class="goodurl">.*$@\1@p' Listing.html)
echo "DL Page: $downloadpage"
secondpage="$downloadpage"
wget -O Download.html $secondpage -nv
file=$(sed -ne 's@^.*<a href="\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)">.*$@\1@p' Download.html)
echo "File: $file"
wget -O "ComboFix.exe" "$file" -nv
rm Listing.html
rm Download.html
mkdir Tools
mv "ComboFix.exe" "Tools/ComboFix.exe" -f
Первые две загрузки работают успешно, и я заканчиваю с:http://www.bleepingcomputer.com/download/combofix/dl/12/
Но он не соответствует финальному седу, который даст мне ссылку для скачивания.
Код, которому он должен соответствовать:
<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>
РЕШЕНИЕ:
Для всех, кто заинтересовался, окончательный код работал:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Download.html "http://www.bleepingcomputer.com/download/combofix/12" -nv
file=$(sed -ne 's@^.*<a href=\x27\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)\x27>.*$@\1@p' Download.html)
echo "File URL: $file"
wget -OSN "ComboFix.exe" "$file" -nv