
を使用してtime
スクリプトの実行時間の一部を取得しましたが、これを数字(30)で割る必要があります。どうすればいいですか?
....| awk '/^user/ {interest=($2)/(30);print "Time user divide by 30: " interest }'
2$では0m4.968sという結果を得て、これを30で割って印刷したいと思います。
答え1
出力は0m4.968s
Bashに組み込まれている基本フォーマットと似ていますtime
。意味のある計算では、分を秒に変換する必要があります。しかし、出力形式を変更する方が簡単です。ユーザー時間のみを考慮する場合は、設定はTIMEFORMAT=%U
秒単位でなければなりません。
$ TIMEFORMAT=%U
$ time somecommand
4.968
組み込み関数の出力をパイプすることはtime
パイプライン全体の時間を測定しようとするので、少しぎこちないですが、次のようにするとうまくいきます。
$ (time somecommand ) 2>&1 | awk '{print $1 / 30}'
0.1656
または、時間を生形式で分析して分と秒を区別する必要がある場合は、次のようになります。
$ echo "user 0m4.968s" |
awk '/user/ {split($2, a, "m"); secs = a[1]*60 + a[2]; print secs / 30}'
0.1656