Eu inventei isto: -
(ps -o comm -A | sort | uniq | while read process; do mem='ps -C "$process" --no-headers -o pmem 2>/dev/null| paste -sd+ | bc'; if [[ $mem != "" ]]; then echo $mem $process; fi ; done) | sort -n -k 1
Mas, como você pode ver, eu tenho uma condição especial para quando o comando falhar. Abaixo está um exemplo em que meu comando falha.
$ ps -o pid,comm -A | grep 17056
17056 [ET_NET 0]
$ ps -C '[ET_NET 0]'
PID TTY TIME CMD
$
O que há de errado?
Tags ps linux bash-scripting