cat の出力に対して計算を実行し、それをフォーマットする方法

cat の出力に対して計算を実行し、それをフォーマットする方法

私はシェルスクリプトを全く知らないが、これを持っている

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 形式では、のパターンに一致する行に対して の=アクションを実行します。 したがって、 を含む行については 、列 2 ( ) を取り出し、 で割った後に出力します。{}//POWER_SUPPLY_POWER_NOW$21000

でそれを行うにはwatch、少し使いにくいかもしれません引用による次のように実行することをお勧めします:

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

関連情報