Em geral, você não deve analisar HTML / XML usando expressões regulares .
No entanto, se o arquivo de entrada for realmente semelhante ao mostrado no exemplo (uma única tag de abertura e fechamento em cada linha e nenhum caractere >
antes do final da tag de abertura), usando Perl:
perl -pe 's/>([0-9]+)/">".*2/e' in
-
s
: afirma para executar uma substituição -
/
: inicia o padrão -
>
: corresponde a um caractere>
-
([0-9]+)
: corresponde e agrupa um ou mais dígitos -
/
: interrompe o padrão / inicia a sequência de substituição -
">".*2
: expression; concatenação de duas cadeias, um caractere>
e o primeiro grupo capturado multiplicado por2
-
/
: interrompe a sequência de substituição / inicia os sinalizadores de padrão -
e
: afirma para avaliar a string de substituição
% cat in
<integer name="leftValue">30</integer>
<integer name="rightValue">580</integer>
<integer name="rightValueDefault">495</integer>
% perl -pe 's/>([0-9]+)/">".*2/e' in
<integer name="leftValue">60</integer>
<integer name="rightValue">1160</integer>
<integer name="rightValueDefault">990</integer>