AWK, SED ou GREP para extrair dados do arquivo HTML

0

Alguém pode me dizer qual é o melhor para usar para extrair os seguintes dados de um arquivo html que foi recebido com curl.

<script>document.getElementById("test-summary").innerHTML = "<strong>Test Pages:</strong> 1 right, 0 wrong, 0 ignored, 0 exceptions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Vou precisar apenas da parte em que 1 right, 0 wrong, 0 ignored, 0 exceptions . com base na seguinte tag: document.getElementById("test-summary") . Estes são alguns resultados de testes e eu precisarei fazer alguma lógica com base neles.

Se alguém puder dar uma sugestão sobre como fazer isso, eu ficaria muito grato.

Muito obrigado,

Istvan Caluser

    
por hoisu 18.08.2015 / 10:35

2 respostas

2

Não super elegante, mas aqui vai:

sed -ne 's/.*"test-summary".* \([0-9][0-9]* right [^&].*exceptions\)&nbsp.*//p'

Por exemplo:

$ echo '<script>document.getElementById("test-summary").innerHTML = "<strong>Test Pages:</strong> 1 right, 0 wrong, 0 ignored, 0 exceptions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' | sed -ne 's/.*"test-summary".* \([0-9][0-9]* right,[^&].*exceptions\)&nbsp.*//p'
1 right, 0 wrong, 0 ignored, 0 exceptions
    
por 18.08.2015 / 10:39
0

Com grep e awk :

grep 'document.getElementById("test-summary")' file.html | awk -F'</strong>|&' '{print $2}'
    
por 18.08.2015 / 10:50