Aix

aix:如何按時間排序ps?

  • March 4, 2016

在 AIX 上,對於前 10 個 CPU 程序,我使用

ps aux | head -1; ps aux | sort -rn +2 | head -10

前 10 個記憶體程序

ps aux | head -1; ps aux | sort -rn +3 | head -10

如何按時間對輸出進行排序?

時間是第 9 列,但是

ps aux | head -1; ps aux | sort -rn +8 | head -10

給我這個結果——不按時間排序

user 14614674  0,0  0,0  168  176  pts/0 T    14:23:23  0:00 cat 
user 13041722  0,0  0,0  168  176  pts/0 T    14:25:59  0:00 cat 
user 12517628  0,0  0,0  168  176  pts/0 T    14:22:26  0:00 cat 
user  9043992  0,0  0,0  168  176  pts/0 T    14:23:13  0:00 cat 
user 14745724  0,0  0,0  168  176  pts/0 T    13:47:11  0:00 cat 

+8(對從第 9個欄位開始的行部分進行排序)或+8 -9(對第 9個欄位進行排序)是不推薦使用的排序鍵規範語法。我建議切換到現代的:-k 9-k 9,9.

在您的情況下,-n排序鍵被解析為數字。也就是說,從第 9個欄位開始到行尾結束的行部分將轉換為數字,並且該數字用於排序。

這意味著只考慮小時部分。

對於要考慮的分鐘和秒,您可以執行以下操作:

ps aux | sort -r -k9n -k9,9

然後,對於小時比較的關係,進行詞彙比較。如果早上的時間寫成02:12而不是2:12,你可以做sort -rk9,也就是做一個詞法比較。

請注意,如果有昨天或之前啟動的程序,它可能不起作用。

引用自:https://unix.stackexchange.com/questions/267375