我需要创建一个shell脚本,按状态类型列出进程。 输出必须是:
流程运行:
[过程]
处理睡眠:
[过程]
ETC
我这样做了,但是 ps aux |没有用awk'$ 8~ PROCESS':
for PROCESS in `ps -v | awk 'NR!=1 {print $2}' | sort -u`; do
echo "Procesos como $PROCESS:"
ps aux | awk '$8 ~ PROCESS'
done
导致脚本输出所有进程,而不是按进程筛选。
任何帮助?
答案 0 :(得分:1)
一个简单的解决方案是使用ps
和sort
:
ps u | sort -rk 8
-r
撤消排序(以便列表标题保持在上方),-k 8
选择第8个字段(STAT
)。
然后,您可以使用head
到awk
之类的任何内容选择特定状态的流程,并打印出您喜欢的任何内容。
答案 1 :(得分:0)
您还可以在非交互模式下使用top(-S选项以按状态显示和排序):
top -b -n 1 -S