从顶部输出中删除标题
问题描述:
我想将一些过程数据写入文件。为此,我选择使用top
。我想监视几个过程并绘制他们的加班时间表。从顶部输出中删除标题
我使用的是Mac OS 10.12。我不认为有一个简单的方法来获取版本号。
现在我有命令: top -l 2 -n 5 -o mem | awk '{ printf("%-8s %-12s %-6s %-6s\n", $1, $2, $3, $8); }'
导致下面的输出:
Processes: 390 total, 2015
2017/09/15 00:41:51
Load Avg: 2.07,
CPU usage: 5.11% idle
SharedLibs: 169M resident,
MemRegions: 117317 total, 1807M
PhysMem: 15G used
VM: 2149G vsize, swapins,
Networks: packets: 24606796/21G
Disks: 2934900/103G read,
PID COMMAND %CPU MEM
0 kernel_task 0.0 1594M+
94178 idea 0.0 897M+
621 Google Chrome 1
277 Google Chrome 3865+
31724 Slack Helper 223+
Processes: 390 total, 2021
2017/09/15 00:41:52
Load Avg: 2.07,
CPU usage: 4.47% idle
SharedLibs: 169M resident,
MemRegions: 117317 total, 1807M
PhysMem: 15G used
VM: 2149G vsize, swapins,
Networks: packets: 24606796/21G
Disks: 2934900/103G read,
PID COMMAND %CPU MEM
0 kernel_task 3.9 1594M-
94178 idea 1.3 897M
621 Google Chrome 1
277 Google Chrome 3866+
31724 Slack Helper 223
不过,我想删除的标题,并留下:
PID COMMAND %CPU MEM
0 kernel_task 0.0 1594M+
94178 idea 0.0 897M+
621 Google Chrome 1
277 Google Chrome 3865+
31724 Slack Helper 223+
0 kernel_task 3.9 1594M-
94178 idea 1.3 897M
621 Google Chrome 1
277 Google Chrome 3866+
31724 Slack Helper 223
所有批次均为
。我也可以省略PID COMMAND %CPU MEM
这一行。
我已经试过管道进入sed
,但下面的命令
top -l 2 -n 5 -o mem | sed '1,10d;n;' | awk '{ printf("%-8s %-12s %-6s %-6s\n", $1, $2, $3, $8); }'
只删除第10行,不是第10行,每行迭代。有人能帮忙吗?
答
awk解决方案。
一个班轮:
top -l 2 -n 5 -o mem | awk '/^PID/{if (p) next; p=1} p && NF>30 {printf("%-8s %-12s %-6s %-6s\n", $1, $2, $3, $8)}'
解释:
/^PID/{ # line starts with PID
if (p) next; # if this is second time around, skip
p=1 # else: set var p to 1
}
p && NF>30 { # if p is set and number of fields > 30, print
printf("%-8s %-12s %-6s %-6s\n", $1, $2, $3, $8)
}
输出:
$ top -l 2 -n 5 -o mem | awk '/^PID/{if (p) next; p=1} p && NF>30 {printf("%-8s %-12s %-6s %-6s\n", $1, $2, $3, $8) }'
PID COMMAND %CPU MEM
0 kernel_task 0.0 1950M+
320 idea 0.0 1007M+
14246 thunderbird 0.0 541M+
3142 Google Chrome 1
3136 Google Chrome 2153+
0 kernel_task 2.0 1950M-
320 idea 3.1 1007M
14246 thunderbird 0.0 541M
3142 Google Chrome 1
3136 Google Chrome 2153
现在你知道我的邮件客户端是什么。
作为一个建议:因为pid不止一次出现,你可以打印最后一次出现。 –