10 de fevereiro de 2013

Shell - Pegar todos os links (href) de uma página

Vamos supor que temos uma página com o seguinte código fonte:
<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <a href='imagem_0.jpg'></a>
        <a href='imagem_1.jpg'></a>
        <a href='imagem_2.jpg'></a>
        <a href='imagem_3.jpg'></a>
        <a href='imagem_4.jpg'></a>
        <a href='imagem_5.jpg'></a>
        <a href='imagem_6.jpg'></a>
        <a href='imagem_7.jpg'></a>
        <a href='imagem_8.jpg'></a>
        <a href='imagem_9.jpg'></a>
        <a href='imagem_10.jpg'></a>
        <a href='imagem_11.jpg'></a>
        <a href='imagem_12.jpg'></a>
        <a href='imagem_13.jpg'></a>
        <a href='imagem_14.jpg'></a>
        <a href='imagem_15.jpg'></a>
        <a href='imagem_16.jpg'></a>
        <a href='imagem_17.jpg'></a>
        <a href='imagem_18.jpg'></a>
        <a href='imagem_19.jpg'></a>
        <a href='imagem_20.jpg'></a>
        <a href='imagem_21.jpg'></a>
        <a href='imagem_22.jpg'></a>
        <a href='imagem_23.jpg'></a>
        <a href='imagem_24.jpg'></a>
        <a href='imagem_25.jpg'></a>
        <a href='imagem_26.jpg'></a>
        <a href='imagem_27.jpg'></a>
        <a href='imagem_28.jpg'></a>
        <a href='imagem_29.jpg'></a>
        <a href='imagem_30.jpg'></a>
        <a href='imagem_31.jpg'></a>
        <a href='imagem_32.jpg'></a>
        <a href='imagem_33.jpg'></a>
        <a href='imagem_34.jpg'></a>
        <a href='imagem_35.jpg'></a>
        <a href='imagem_36.jpg'></a>
        <a href='imagem_37.jpg'></a>
        <a href='imagem_38.jpg'></a>
        <a href='imagem_39.jpg'></a>
        <a href='imagem_40.jpg'></a>
        <a href='imagem_41.jpg'></a>
        <a href='imagem_42.jpg'></a>
        <a href='imagem_43.jpg'></a>
        <a href='imagem_44.jpg'></a>
        <a href='imagem_45.jpg'></a>
        <a href='imagem_46.jpg'></a>
        <a href='imagem_47.jpg'></a>
        <a href='imagem_48.jpg'></a>
        <a href='imagem_49.jpg'></a>
        <a href='imagem_50.jpg'></a>
    </body>
</html>
O objetivo é extrair o conteúdo do "href" de todos os links. Com uma simples linha de comando no shell, usando expressões regulares, é possível fazer isso sem esforço:
grep -E -o href=\'.*\' pagina | sed 's/href=//
Os parâmetros -E aumenta o "poder" da expressão regular e -o mostra somente o que foi pedido, excluindo o restante.
O resultado é o seguinte:
'imagem_0.jpg'
'imagem_1.jpg'
'imagem_2.jpg'
'imagem_3.jpg'
'imagem_4.jpg'
'imagem_5.jpg'
'imagem_6.jpg'
'imagem_7.jpg'
'imagem_8.jpg'
'imagem_9.jpg'
'imagem_10.jpg'
'imagem_11.jpg'
'imagem_12.jpg'
'imagem_13.jpg'
'imagem_14.jpg'
'imagem_15.jpg'
'imagem_16.jpg'
'imagem_17.jpg'
'imagem_18.jpg'
'imagem_19.jpg'
'imagem_20.jpg'
'imagem_21.jpg'
'imagem_22.jpg'
'imagem_23.jpg'
'imagem_24.jpg'
'imagem_25.jpg'
'imagem_26.jpg'
'imagem_27.jpg'
'imagem_28.jpg'
'imagem_29.jpg'
'imagem_30.jpg'
'imagem_31.jpg'
'imagem_32.jpg'
'imagem_33.jpg'
'imagem_34.jpg'
'imagem_35.jpg'
'imagem_36.jpg'
'imagem_37.jpg'
'imagem_38.jpg'
'imagem_39.jpg'
'imagem_40.jpg'
'imagem_41.jpg'
'imagem_42.jpg'
'imagem_43.jpg'
'imagem_44.jpg'
'imagem_45.jpg'
'imagem_46.jpg'
'imagem_47.jpg'
'imagem_48.jpg'
'imagem_49.jpg'
'imagem_50.jpg'

Nenhum comentário:

Postar um comentário