在 grep 命令之后使用时,不会显示 awk 的输出



我想在Mac OS中使用pidtop命令中获取进程的CPU 百分比。当我使用top | awk '{print $3}'时,我得到了所有进程的 CPU 百分比。但是,使用top | grep 11568 | awk '{print $3}'不会返回任何内容。top | grep 11568的输出为

11568  java             0.0  09:48.45 663   2   1533+  521M+  0B     741M+  11560 11560 sleeping *0[64+]       0.00000 0.00000    501 1335625+ 803+    12376+    4146+     37032037+  28783+    3748122+   514+    112576  0.0   0      0      amar               N/A    N/A   N/A   N/A   N/A   N/A

由于我没有 mac os,因此尚未测试此命令,您能否尝试以下操作。

your_command | awk -F' +'  '/11568/{print $3}'

我发现由于top的输出是连续的,因此使用-l 1有助于awk解析数据,因为数据不断变化,awk的输出为空。因此,使用top -l 1 | grep 19275 | awk '{ print $3}'会给出正确的输出。此外,top | awk -F' +' '/11568/{print $3}'给出了正确的输出,但是在 shell 文件中使用top | awk -F' +' '/11568/{print $3}'不起作用,我想找到平均 CPU 消耗,所以我需要将打印值分配给一个变量,然后找到平均值

最新更新