aix:如何按时间对 ps 进行排序?

aix:如何按时间对 ps 进行排序?

在 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,即进行词法比较。

请注意,如果有昨天或之前启动的进程,它可能无法工作。

相关内容