6

我想捕获 top 命令的输出以在另一个程序中使用,但是我只需要某些信息,更准确地说,我只需要 USER、PID、CPU、COMMAND 列。我已经有了top -b -n 1 | sed -n '7,12p'过滤前 5 个结果的命令,但我不能再进一步了,因为我对 sed/awk 了解不多。

示例:这是我得到的

PID USER    PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND  
4 root      20   0   98748  50608   4608 S  6.4  4.9 212:12.16 X  
1 root      20   0    2132    128     96 S  0.0  0.0   0:07.62 init  
2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd  
3 root      20   0       0      0      0 S  0.0  0.0   7:28.54 ksoftirqd/0

这就是我想要的

PID USER %CPU COMMAND  
 4 root  6.4 X  
 1 root  0.0 init  
 2 root  0.0 kthreadd  
 3 root  0.0 ksoftirqd/0
4

2 回答 2

5

传递给:

awk '{print $1,$2,$9,$NF}'
于 2013-11-06T15:48:45.020 回答
1

一切结合在一起。

top -b -n 1 | awk 'NR>6 && NR<13 {printf "%6s %-4s %-4s %-s\n",$1,$2,$9,$NF}'
于 2013-11-06T16:12:11.213 回答