Usando sed
Aqui está uma maneira:
$ sensors -Af | sed -n '2{s/°.*//; s/[^+-]*//; p; q}'
+105.8
Ou usando o mesmo comando dentro da substituição de comandos para capturar sua saída em uma variável:
temp=$(sensors -Af | sed -n '2{s/°.*//; s/[^+-]*//; p; q}')
s/°.*//
remove a primeira ocorrência do símbolo de grau, °
e tudo depois dele. s/[^+-]*//
remove tudo, mas não inclui o primeiro +
ou -
.
Usando o awk
$ sensors -Af | awk 'NR==2{print $3+0; exit;}'
105.8
O número que queremos está no terceiro campo. Como o terceiro campo contém caracteres, por exemplo, +105.8°F
, adicionamos 0
a ele. Isso força o awk a convertê-lo para o que queremos: um número.