file1
100
内容として含め、をfile2
含めます200
。ターミナルでこれら2つの数字についてどのように計算できますか?私がこの2つの数字を分けたいとしましょう。私の方法はですが、echo $(cat file1)/$(cat file2)
印刷されます100/200
。分割された値を出力として取得したいと思います。
私の元の意図は、端末で自分のコンピュータのバッテリー比を調べることでした。以下には、という/sys/class/power_suply/BAT1
2つのファイルがあります。現在のバッテリ充電率を得るには、次の値を取得する必要があります。energy_now
energy_full
100 * energy_now / energy_full
ベストアンサー1
猫の皮をむく方法はいくつかあります。シェルのバージョンに応じて「算術拡張」を実行できます(参考資料を参照man bash
)。
> echo $(($(cat file1)/$(cat file2)))
0
bash
0は整数演算しか実行できないため、満足できませんが正しい結果です。ファイルを反転すると、結果がはるかに明確になります。
> echo $(($(cat file2)/$(cat file1)))
2
システムにbc
(man bc
-Arbitrary Precision Calculator Language)がインストールされている場合は、以下を試してください。
> echo "scale=2; $(cat file1)/$(cat file2)" | bc
.50
さらに、目的の結果を簡単に生成できるテキスト処理および/またはスクリプト言語(awk
、、perl
など)がたくさんあります。python