Chinaunix首页 | 论坛 | 博客
  • 博客访问: 307996
  • 博文数量: 47
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 558
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-25 15:43
文章分类

全部博文(47)

文章存档

2016年(2)

2012年(10)

2011年(13)

2010年(1)

2009年(19)

2008年(2)

分类:

2009-09-02 10:33:01

突然碰到需要将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) |
给主人留下些什么吧!~~