我想从 command 的输出中提取一些字段xentop
。这就像top
命令;提供持续查看 cpu 使用情况、内存使用情况、...实时。如果我在批处理模式下运行此命令,我将在文件中看到它的输出:
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR VBD_RSECT VBD_WSECT SSID
Domain-0 -----r 13700 33.0 7127040 85.9 no limit n/a 8 0 0 0 0 0 0 0 0 0 0
fed18 -----r 738 190.6 1052640 12.7 1052672 12.7 3 1 259919 8265 1 0 82432 22750 2740966 1071672 0
并运行这个
cat file| tr '\r' '\n' | sed 's/[0-9][;][0-9][0-9][a-Z]/ /g' | col -bx | awk '{print $1,$4,$6}'
在这个文件上给了我我想要的
NAME CPU(%) MEM(%)
Domain-0 33.0 85.9
fed18 190.6 12.7
但我的脚本不适用于 xentop 的实时输出。我什至尝试通过将迭代选项设置为 1( ) 来运行 xentop 一次,xentop -i 1
但它不起作用!如何将 xentop 的输出作为“非”实时传输到我的脚本?