Linux top -b 只显示特定列

标签 linux bash shell sed awk

<分区>

我想捕获 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

最佳答案

传递给:

awk '{print $1,$2,$9,$NF}'

关于Linux top -b 只显示特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19816412/

相关文章:

linux - 排除来自 "du"的所有权限被拒绝消息

linux - 如何使用旧内核为 GNU/Linux 安装构建静态二进制文件?

linux - 错误 : RPC failed; result=6, HTTP 代码 = 0

linux - 通过加载项管理器对 monodevelop 的 Fsharp 绑定(bind)无法解析依赖项

bash - 在脚本中使用 sed 将文件内容替换为行

bash - 使用 shell 脚本转换文件内容

linux - 同时在多个位置执行多个脚本

linux - 如何修复 bash az 命令未找到

linux - Git 自动补全看起来很奇怪(而且只有一半功能)

linux - Shell 脚本 - 修剪文件名