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 형식은 {}에서 패턴과 일치하는 행에 대해 작업을 수행하는 것입니다 //. 따라서 가 있는 라인에 대해서는 POWER_SUPPLY_POWER_NOW2번째 열( )을 꺼내서 $2로 나누어서 인쇄합니다 1000.

으로 그렇게 하는 것은 watch사용하기가 조금 어려울 수 있습니다.인용문으로 인해. 다음과 같이 실행하는 것이 좋습니다.

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

관련 정보