Linux 如何从ps aux列出每个进程,如果它们重复,请保持运行计数和格式

Linux 如何从ps aux列出每个进程,如果它们重复,请保持运行计数和格式,linux,bash,grep,ps,Linux,Bash,Grep,Ps,现在,我用这个: ps aux | grep (Example_Process_1) -c 这将返回: 221 这很好,它给了我一个计数,但我必须对我们拥有的100种不同的物品中的每一种进行计数: 比如说, ps aux | grep (Example_Process_1) -c ps aux | grep (Example_Process_2) -c ps aux | grep (Example_Process_3) -c 等等。 我想要的是一个命令运行一次,但输出类似: Example

现在,我用这个:

ps aux | grep (Example_Process_1) -c
这将返回:

221
这很好,它给了我一个计数,但我必须对我们拥有的100种不同的物品中的每一种进行计数:

比如说,

ps aux | grep (Example_Process_1) -c
ps aux | grep (Example_Process_2) -c
ps aux | grep (Example_Process_3) -c
等等。 我想要的是一个命令运行一次,但输出类似:

Example Process 1 - 221
Example Process 2 - 360
Example Process 3 - 500
我意识到我可以编写一个脚本来执行其中的每一个,然后我可以将它们输出到屏幕上,但它又大又笨重。有人知道任何简短的干净代码来实现这一点吗

ps -e -o cmd | cut -f 1 -d ' '  | sort | uniq -c

对于所有进程,打印命令行。获取命令行的第一个单词。对列表进行排序。计算每个进程的出现次数。

一个存储所有进程名称和for循环的数组如何?使用sed获取所需信息,通过sort、uniq-c和sort-n传递它。或者用awk。这会让我达到我想要的目的,谢谢。有没有办法让它先按最高计数排序?如果不是很酷,我很满意。非常感谢。