- 论坛徽章:
- 2
|
大家好,在Linux下面 ,输入 top,第6列是 RES 列,我现在 想对 第6列 进行 降序排列,然后 输出到 1个 文件中。
为了排序,必须把 第6列中带 g 的 换成 *1024*1024 kb,带 m 的 换成 *1024 kb ,如 5g 换成 5*1024*1024,5m 换成 5*1024
我的方法是 top -b -n1 | awk '{ gsub (/m/, "*1024", $6); gsub (/g/, "*1024*1024", $6); print $0 }' >! top.log
问题是
1. gsub 替换 结果得到是 字符串,没有计算 5g( 5*1024*1024 ) 和 5m( 5*1024 ) 的值?
2. 如何对 第6列 进行排序?
求大侠们指导,在线等,比较急,谢谢啦。
附带:top 命令输出格式:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14795 u1 25 0 377m 33g 4428 S 0.0 1.2 1:52.72 mysqld
15676 u2 18 0 317m 323m 4572 S 0.0 1.0 1:59.01 mysqld
15194 u3 18 0 304m 3592 4416 S 0.0 0.9 1:08.78 mysqld |
|