como realizar um cálculo na saída de cat e formatá-lo [fechado]

3

Eu não sei nada sobre shell script, mas eu tenho isso

cat /sys/class/power_supply/BAT0/power_now

que me dá a saída em miliwatts, que eu gostaria de formatar como watts e usar no watch

watch -t -n 5 cat /sys/class/power_supply/BAT0/power_now
    
por Ourjamie 01.06.2018 / 20:32

2 respostas

2

Você pode usar bc (com o sinalizador para fazer a divisão de ponto flutuante):

echo "$(cat /sys/class/power_supply/BAT0/power_now) / 1000" | bc -l
    
por 01.06.2018 / 20:44
0

Você sempre pode recorrer ao awk para analisar o arquivo e executar cálculos:

awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now

Isso opera usando = como separador para colunas. O formato awk típico é executar a ação em {} para linhas que correspondem ao padrão em // . Portanto, para a linha que tem POWER_SUPPLY_POWER_NOW , remova a coluna 2 ( $2 ) e imprima-a após dividir por 1000 .

Quanto a fazer isso com watch , pode ser um pouco difícil usar devido a citações . Eu sugiro executá-lo como:

watch "awk -F '=' '/POWER_SUPPLY_POWER_NOW/{print $2/1000}' /sys/class/power_supply/BAT0/power_now"
    
por 01.06.2018 / 21:35

Tags