我想捕获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
答案 0 :(得分:3)
传递给:
awk '{print $1,$2,$9,$NF}'
答案 1 :(得分:0)
一切都结合在一起。
top -b -n 1 | awk 'NR>6 && NR<13 {printf "%6s %-4s %-4s %-s\n",$1,$2,$9,$NF}'