突然碰到需要将top的综合内容格式化为文本, 于是需要一段sed脚本.实际上, top的输出并非像我们想像的如此简单, 其中含有许多的控制字符, 这些都是和终端相关的. 要把这些特殊字符去掉才能得到规范化的文本.
在Ubuntu Linux上, 使用以下脚本就可以获得规范化的文本输出:
top -n 1 | sed '/PID/,$d'| sed 's/[^%, -:()0-9a-zA-Z]*//g' | sed 's/m(B[0-9]*;[0-9]*m//g' | sed 's/m(B//g' | sed 's/H2J//'| sed 's/K$//' | sed '$d' | sed '1d'
为了更进一步处理, 还可以将一下内容加入管道列表.
sed 's/:/:\n/g' | sed 's/,/\n/g'
最后获得的输出就是:
Tasks:
211 total
1 running
208 sleeping
1 stopped
1 zombie
Cpu(s):
62%us
09%sy
00%ni
888%id
40%wa
00%hi
00%si
00%st
Mem:
2052548k total
1961532k used
91016k free
121172k buffers
Swap:
6016300k total
115400k used
5900900k free
1373488k cached
阅读(1189) | 评论(0) | 转发(0) |