2012-12-17 60 views
1

有人可以幫我解析這個輸出以顯示總分鐘數嗎?在幾分鐘內解析/格式化ps -eo etime?

這裏的命令(如預期,除了該格式的作品):

ps -eo pid,etime,command | grep some_process | grep -v grep | awk '{print $2}' 

輸出(以小時,分鐘,秒)

03:01:24 

我需要的輸出看起來是這樣的:

181.40 

(3小時,1分鐘,顯示爲實數24秒)

這可能嗎?任何建議,非常感謝。

回答

2
ps -eo pid,etime,command | grep PID | grep -v grep | awk '{print $2}' | awk -F : '{ printf("%.2f\n", $1*60+$2+($3/60)); }' 

被修改: 的改進版本(THX @alexandernst和@Nathan):

ps -eo pid,etimes,command | grep PID | grep -v grep | awk '{printf("%.2f\n", $2/60)}' 
+0

哇,極大。這按預期工作。我可以問一下背後的邏輯: $ 1 * 60 + $ 2 +($ 3/60) 感謝您的快速回復 –

+0

$ 1:$ 2:$ 3 =小時:分鐘:秒。小時到分鐘= $ 1 * 60.秒到分鐘= $ 3/60.明白了嗎? – tcurvelo

+3

如果/當etime不返回HH:MM:SS,但只是MM:SS(例如,在不到一小時前開始的過程)時,這將失敗 – alexandernst