Parsing: extrai uma versão de uma linha html

0

Gostaria de extrair o número da versão desta string:

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">

Observe que ' /url/version/tree/ ' pode mudar (ex: de /url/version/tree/ para /url/version2/tree1/) e a versão pode mudar também (ex: de 1.01alpha11 para 2.0stable )

Idéias / sugestões?

    
por piplo 14.01.2018 / 11:05

3 respostas

0

sed solução:

Exemplo de arquivo input.txt :

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">
<a href="/url/version/tree/2.0stable" class="css-truncate">
sed -En 's@.*\<href="/[^[:space:]]+/([^/"[:space:]]+).*@@p' input.txt

A saída:

1.0.1alpha11
1.0.2alpha11
2.0stable
    
por 14.01.2018 / 12:06
0

Eu extraí a versão usando o comando awk abaixo. Como testado, funcionou bem.

Inputfile

<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">
<a href="/url/version/tree/2.0stable" class="css-truncate">

comando

awk -F '[/]' '{print $NF}' Inputfile| awk -F '"' '{print $1}'

saída

1.0.1alpha11
1.0.2alpha11
2.0stable
    
por 14.01.2018 / 12:20
0

Arquivo de origem: input.txt:

<a href="/url/version2/tree1/2.0stable" class="css-truncate">
<a href="/url/version/tree/1.0.1alpha11" class="css-truncate">
<a href="/url/version2/tree1/1.0.2alpha11" class="css-truncate">

Usando awk e sed :

awk 'BEGIN { FS = "/" } { print $5 }' input.txt | sed -E 's/^(.*)"\s.*//'

Resultados:

2.0stable
1.0.1alpha11
1.0.2alpha11
    
por 14.01.2018 / 12:46