Supondo que o arquivo de entrada seja a.txt e b.txt respectivamente,
sed -e 's/<[^>]*>//g' -e s/,/./ a.txt|awk '/W/ { s+=$1 } END { print s }'
227
sed -e 's/<[^>]*>//g' -e s/,/./ b.txt|awk '/W/ { s+=$1 } END { print s }'
45
Este trabalho, mesmo com dados decimais (por exemplo, 0,12 W
, dá 45.12
).
Se você sempre deseja dados decimais
sed -e 's/<[^>]*>//g' -e s/,/./ a.txt|awk '/W/ { s+=$1 } END { printf "%.2f\n", s }'
227.00
Editar: Para obter apenas o primeiro valor ($ 2 é W, você imprime $ 1)
sed -e 's/<[^>]*>//g' -e s/,/./ a.txt|awk '/W/ { print $1 ; exit ; }'
Editar 2: com log completo, tentando obter linha com W
sed -e 's/<[^>]*>//g' -e s/,/./ a.txt|awk '$2 == "W" { print $1 ; exit ; }'
70.00
Editar 3: adicionando dois valores.
A maneira mais simples é usar habilidades bash para adicionar números.
Digamos que seus arquivos estejam em arquivos1.htmland files2.html
VAR1=$(sed -e 's/<[^>]*>//g' -e s/,/./ files1.html |awk '$2 == "W" { print $1 ; exit ; }' )
VAR2=$(sed -e 's/<[^>]*>//g' -e s/,/./ files2.html |awk '$2 == "W" { print $1 ; exit ; }' )
SUM=$(($VAR1 + $VAR2))