両方のファイルの内容を計算します。

両方のファイルの内容を計算します。

file1100内容として含め、をfile2含めます200。ターミナルでこれら2つの数字についてどのように計算できますか?私がこの2つの数字を分けたいとしましょう。私の方法はですが、echo $(cat file1)/$(cat file2)印刷されます100/200。分割された値を出力として取得したいと思います。

私の元の意図は、端末で自分のコンピュータのバッテリー比を調べることでした。以下には、という/sys/class/power_suply/BAT12つのファイルがあります。現在のバッテリ充電率を得るには、次の値を取得する必要があります。energy_nowenergy_full100 * energy_now / energy_full

ベストアンサー1

猫の皮をむく方法はいくつかあります。シェルのバージョンに応じて「算術拡張」を実行できます(参考資料を参照man bash)。

> echo $(($(cat file1)/$(cat file2)))
0

bash0は整数演算しか実行できないため、満足できませんが正しい結果です。ファイルを反転すると、結果がはるかに明確になります。

> echo $(($(cat file2)/$(cat file1)))
2

システムにbcman bc-Arbitrary Precision Calculator Language)がインストールされている場合は、以下を試してください。

> echo "scale=2; $(cat file1)/$(cat file2)" | bc
.50

さらに、目的の結果を簡単に生成できるテキスト処理および/またはスクリプト言語(awk、、perlなど)がたくさんあります。python

おすすめ記事