在 AIX 上,对于前 10 个 cpu 进程,我使用
ps aux | head -1; ps aux | sort -rn +2 | head -10
对于前 10 个 mem 进程
ps aux | head -1; ps aux | sort -rn +3 | head -10
如何按时间对输出进行排序?
stime 是第 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
答案1
+8
(对从第 9个字段开始的行的部分进行排序)或(对第 9个+8 -9
字段进行排序)是已弃用的排序键规范语法。我建议切换到现代的:和。-k 9
-k 9,9
在您的情况下,-n
排序键被解析为数字。也就是说,行中从第 9 个字段开始到行尾结束的部分被转换为数字,并且该数字用于排序。
这意味着仅考虑小时部分。
对于要考虑的分钟和秒数,您可以这样做:
ps aux | sort -r -k9n -k9,9
然后,对于时间比较上的联系,进行词汇比较。如果早上的时间写为02:12
和 not 2:12
,那么就可以这样做sort -rk9
,即进行词法比较。
请注意,如果有昨天或之前启动的进程,它可能无法工作。