如何使用awk或grep根据条件显示列中的值?

时间:2015-03-11 09:39:38

标签: awk grep ps

我需要获取进程列表,其进程ID为cpu%,memory%为cpu%> 0

我可以使用

获得输出
ps aux --sort=-pcpu|awk '{print $2,$3,$4,$11}'

采用以下格式

PID %CPU %MEM COMMAND.

输出为您提供基于cpu%的排序输出。

我只需要获得cpu%> 0

的行

我是使用aux,grep的新手,但我想我可以使用这些工具来完成。

由于

2 个答案:

答案 0 :(得分:3)

这应该做:

ps aux --sort=-pcpu |awk '$3>0{print $2,$3,$4,$11}'

或者只是:

ps aux --sort=-pcpu |awk '$3{print $2,$3,$4,$11}'

此后$3需要不是0

答案 1 :(得分:1)

awk确实按照您的意愿行事:

ps aux --sort=-pcpu|awk '{if ($3>0) print $2,$3,$4,$11}'

附录:如果您也喜欢标题:

ps aux --sort=-pcpu|awk '{if (NR==1 || $3>0) print $2,$3,$4,$11}'

NR是内置变量,包含当前行号(严格来说,记录号。)