使用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