我想将一些进程数据写入文件。为此,我选择使用top
。我想监视多个过程并绘制其加时性的表现图。
我正在使用Mac OS 10.12。我认为没有一种简单的方法来获取版本编号。
现在我有命令:
top -l 2 -n 5 -o mem | awk '{ printf("%-8s %-12s %-6s %-6sn", $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 %-6sn", $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 %-6sn", $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 %-6sn", $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 %-6sn", $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
现在您知道我的邮件客户端是什么。