Isso funcionará:
ps -eo user|sort|uniq -c|sort -gr
sort -gr is the key to it.
-g : Sort numerically.
Atualmente estou trabalhando em um ambiente remoto onde gostaria de classificar o número de usuários usando a maioria dos processos com o comando ps. O único problema é; com meu comando atual; o usuário root não é exibido e deve ser exibido. A primeira saída é o que eu estou procurando, o último é o que recebo atualmente.
157 root
12 apache
11 brun1992
4 bb
2 postfix
2 hart4492
2 68
1 USER
1 sshd
1 rpcuser
MEU COMANDO:
ps -eo user=|sort|uniq -c | head -n 10 | sort -r $1
9 apache
6 au6620
5 ande7941
4 cwen4344
4 bb
3 dagg9715
2 evan8561
2 brun1992
2 alki2221
1 dbus
O problema é que você tem a cabeça antes do tipo. Eu acho que você está tentando encontrar os dez nomes de usuários mais usados. Primeiro, como diz @ rakesh-n, você precisa ordenar numericamente.
Mas o problema é que você obtém uma lista do uniq que é classificada por nome de usuário e, em seguida, você pega os dez primeiros e, depois disso, classifica por contagem. Dê uma olhada no seu exemplo e observe que todos os nomes de usuários começam com a-e
ps -eo user=|sort|uniq -c | sort -r $1 | head -n 10
Tags ps text-processing sort