Como posso usar o awk para extrair URLs de um arquivo HTML?

6

Eu tenho um arquivo HTML com javascript e CSS na origem. Listado no JS é uma série de URLs incorporados com outros meta-dados. Eu quero usar o awk para extrair as URLs (todas entre aspas duplas com o prefixo http: //) e despejar as URLs para stdout. Mas eu não sei como usar o awk, mas parece ser a ferramenta a ser usada.

{
title: "Dsssat",
artist: "cxpl djij awsoj e",
mp3: "http://somesite.com/seal/dsssat.mp3",
},
    
por Ronaldo Nascimento 25.11.2012 / 23:24

2 respostas

7

Você pode usar grep . Para incluir as aspas duplas:

grep -o '"http://[^"]*"' myfile.html

Para excluir as aspas duplas:

grep -o 'http://[^"]*' myfile.html

Editar

Você pode querer fazer mais alguma filtragem para garantir que você corresponda apenas aos URLs nos objetos JavaScript:

grep -o 'mp3: "http://[^"]*"' myfile.html | grep -o '"http://[^"]*"'

grep -o 'mp3: "http://[^"]*"' myfile.html | grep -o 'http://[^"]*'
    
por 25.11.2012 / 23:37
9

Por que usar o awk? sed é melhor nisso:

sed -ne 's/.*\(http[^"]*\).*//p' < foo.js
    
por 25.11.2012 / 23:39

Tags