この表現の数はどのようにわかりますか?

この表現の数はどのようにわかりますか?

を使用してtimeスクリプトの実行時間の一部を取得しましたが、これを数字(30)で割る必要があります。どうすればいいですか?

....| awk '/^user/ {interest=($2)/(30);print "Time user divide by 30: " interest }'

2$では0m4.968sという結果を得て、これを30で割って印刷したいと思います。

ベストアンサー1

出力は0m4.968sBashに組み込まれている基本フォーマットと似ています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

おすすめ記事