wie führe ich eine Berechnung für die Ausgabe von cat durch und formatiere sie dann

wie führe ich eine Berechnung für die Ausgabe von cat durch und formatiere sie dann

Ich kenne mich mit Shell-Scripting überhaupt nicht aus, aber ich habe das

cat /sys/class/power_supply/BAT0/power_now

das gibt mir die Ausgabe in Milliwatt, die ich als Watt formatieren und in der Uhr verwenden möchte

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

Antwort1

bcSie können (mit dem Flag zur Gleitkommadivision) Folgendes verwenden :

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

Antwort2

Sie können zum Parsen von Dateien und Durchführen von Berechnungen immer auf awk zurückgreifen:

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

Dies funktioniert, indem =als Spaltentrennzeichen verwendet wird. Ein typisches awk-Format besteht darin, die Aktion {}für Zeilen auszuführen, die dem Muster in entsprechen //. Nehmen Sie also für Zeilen mit POWER_SUPPLY_POWER_NOWdie Spalte 2 ( $2) heraus und drucken Sie sie nach der Division durch 1000.

Was das mit angeht watch, kann es ein bisschen schwierig sein, es zu benutzenaufgrund von Zitaten. Ich würde vorschlagen, es so auszuführen:

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

verwandte Informationen