Você deve reduzir as colunas produzidas por ps
ao mínimo, ou seja, solicitar apenas o nome de usuário aqui - isso simplifica o processamento adicional.
Por exemplo:
$ ps -eo user=
imprimirá o proprietário de todos os processos atualmente em execução ( =
suprime o cabeçalho).
Uma maneira fácil de obter as contagens de cada usuário:
$ ps -eo user= | sort | uniq -c
1 dovecot
1 messagebus
1 mpd
1 polkitd
2 postfix
121 root
27 me
Você pode filtrar como desejar:
$ ps -eo user= | sort | uniq -c | awk '$1 > 42 {print $2}'
root
Com um limite em uma variável:
$ N=42
$ ps -eo user= | sort | uniq -c | awk -v limit="$N" '$1 > limit {print $2}'
root