- ベストアンサー
Linux(BASH)上での数値定数について
- BASH上でのPSのRSS合計値の算出方法について教えてください。
- 合計値が9桁以上の場合、awkを使用して整数に変換する方法があるのでしょうか。
- お知恵をお借りできれば幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
awk のスクリプトの先頭に BEGIN{OFMT="%d"} を入れるか、 表示の時に print ではなく、printf "%d",sum のように すれば良いと思います。 OFMT の意味は man awk などで調べてください。 awkが整数値としてどの範囲まで有効かは、ご自分で調べてください。
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
追伸。 awkもpsも「bash」ではありません。
お礼
ご返答頂きありがとうございます。 > awk の実装はちょっと調べないとわからないですが、まあ、その程度しか用意されていないのでしょう。 > PythonやRuby、Perl+Bignum等を使って、多倍長や無限長の整数で計算するのはどうでしょう。 別のものならある程度簡単に出来るのでしょうか。 > 別解としては、awkで多倍長演算するプログラムにすることです。 awkのみの場合、一工夫しないと駄目そうですね。 含めて調べようと思います。 > 追伸。awkもpsも「bash」ではありません。 確かに組み込みコマンド…では無いですよね。 質問の仕方が悪かったようです。 急いで書いたら、誤変換だらけで、コメントも頂けないかな?と思ったのですが、 助かりました。 頂いたキーワード元にがんばってみます。
- kmee
- ベストアンサー率55% (1857/3366)
awk の実装はちょっと調べないとわからないですが、まあ、その程度しか用意されていないのでしょう。 PythonやRuby、Perl+Bignum等を使って、多倍長や無限長の整数で計算するのはどうでしょう。 別解としては、awkで多倍長演算するプログラムにすることです。
お礼
解答ありがとうございます。 取り合えず、今回必要な桁数は「Perl」のみで出来そうです。 ※ まったくといってさわったことは無いのですが。 PythonやRubyでの算出方法も今後の課題として試してみたいと思います。 ありがとうございました。
お礼
解答ありがとうございます。 両方とも"%d"なのはなぜだろう。と思ったら、「OFMT」にて指定する内容は printfでの指定フォーマットなのですね。 提示頂いた両方の方法にて今回行いたかった情報に対し 算出できることを確認しました。 今回は急ぎ、perlにて算出したため、今後の選択しや 他で活用したいと考えます。 > awkが整数値としてどの範囲まで有効か 今まで、桁数を気にするほどの内容は無かったのですが、 「awk」に限らず、常に頭に入れておいたほうが良さそうですね。 ありがとうございました。