2013-04-21 48 views
4

我写一个bash脚本,我使用排序的整数值

ps -e -o %cpu

命令。

我想输出的排序%cpu值(降序)。怎么做? 我知道我应该使用排序命令,但我不知道如何。

+1

您是否在寻找一些简单的'ps -e -o%cpu |排序-r'? – tessi 2013-04-21 08:48:58

回答

8
ps -e -o %cpu | sort -nr 

n为数字,r反向。如果你还想删除标题:

ps -e -o %cpu | sed '1d' | sort -nr 
+0

还有一个问题。我想使用读取命令,但不必点击返回按钮(输入)结束。 可以说......一个脚本正在运行,如果用户按下键盘上的'q'按钮,脚本将结束 – user1926550 2013-04-21 09:12:32

+1

'while read -n1 next;做[$ next =='q'] && break; done' – perreal 2013-04-21 09:16:41

1

ps有一个内置的选项,根据任何选择的字段对其输出进行排序。您可以使用

ps k -%cpu -e -o %cpu 

这里,k各种基于场的输出提供,-%cpu是它的降序排列。

如果您在排序字段前面省略了-,那么它将按升序排序。 另外请注意,你可以给它的多个排序字段:

ps k -%cpu,-%mem -e -o %cpu,%mem 

这将输出排序(按降序排列为两者)首先要根据%cpu场和第二基于%mem场。