Primeiro, um aviso obrigatório. Geralmente é uma idéia muito ruim para tentar analisar HTML com ferramentas simples como expressões regulares. Dito isso, nesse caso, se você tiver certeza de que o que deseja sempre estará entre file:
e o primeiro ,
, você pode usar:
wget -O - http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html 2>/dev/null |
grep -oP 'file:\K[^,]*'
Você precisa que o -O -
indique wget
para imprimir o html como padrão, em vez de salvar em um arquivo. Isso é canalizado por meio de grep
com expressões regulares compatíveis com Perl ( -P
) e -o
para informar que apenas imprime a parte correspondente da linha. A regex em si procura file:
e, em seguida, descarta-a ( \K
) e, em seguida, 0 ou mais caracteres não- ,
( [^,]*
). O 2>/dev/null
descarta as mensagens do wget.
Note que no URL de exemplo que você deu, há três correspondências:
$ wget -O - http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html | grep -oP 'file:\K[^,]*'
"http://77.81.98.228:8777/n2ceexa2lo4pcnokaldsf4o64qg7le7rp2xxamcxtdebwqbtaozwssfetq/v.mp4"
"http://vodlocker.com/dl?op=get_slides&file_code=wrdlm4dbigu4"
"http://vodlocker.com/images/vodjw_logo.png"
Se você sabe que só precisa do primeiro, use -m 1
para informar grep
para parar após o primeiro jogo:
$ wget -O - http://vodlocker.com/embed-wrdlm4dbigu4-850x450.html 2>/dev/null |
grep -m1 -oP 'file:\K[^,]*'
"http://77.81.98.228:8777/n2ceexa2lo4pcnokaldsf4o64qg7le7rp2xxamcxtdebwqbtaozyasfetq/v.mp4"