我怎樣才能得到這個表達式的編號?

我怎樣才能得到這個表達式的編號?

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

相關內容