如何對 cat 的輸出進行計算,然後對其進行格式化

如何對 cat 的輸出進行計算,然後對其進行格式化

我根本不懂 shell 腳本,但我有這個

cat /sys/class/power_supply/BAT0/power_now

這給了我以毫瓦為單位的輸出,我想將其格式化為瓦並在手錶中使用

watch -t -n 5 cat /sys/class/power_supply/BAT0/power_now

答案1

您可以使用bc(使用標誌進行浮點除法):

echo "$(cat /sys/class/power_supply/BAT0/power_now) / 1000" | bc -l

答案2

您始終可以求助於 awk 來解析文件並執行計算:

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

這適用於用作列=的分隔符號。典型的 awk 格式是{}對與 中的模式相符的行執行操作//。因此,對於具有 的行 POWER_SUPPLY_POWER_NOW,取出第 2 列 ( $2) 並除以 後列印它1000

至於這樣做watch,可能有點難用由於報價。我建議將其運行為:

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

相關內容