利用sed生成好看的报表
1,982 Views『作者:RickyZhu 转载务必注明出处和作者』
Tag:programming
前阵子做性能测试的时候,系统工程师有个要求,所有的性能测试项目提供一份vmstat的结果作为参考,最好能做出性能的曲线. 做曲线这么艰巨任务就只能由Excel去完成肋,我们所要做的就是把vmstat的结果输出为一个标准的格式文件,步骤如下:
1. 首先利用vmstat -n 5 10 > vmstat.csv把结果输出到一个文本文件中. (不过solaris好像没有-n
,只能自己想办法去掉)
2. 利用利器sed把其中的第一个空格去掉,命令如下:
:1,$s/^ //
我尝试了N次,都没能成功,居然把行首的^给忘记了,自责中…
3. 利用sed把其中所有的空格替换成, 这样csv格式就可以直接被打开,利用如下的命令:
:1,$s/ \+//g
这个命令也有一段来历,刚开始尝试的时候用的不是+而是*,结果每次都把后面的所有内容都替掉了,后来在伟大的Grant同学指点下(一个冰淇淋换来的)用转义后的+解决. 不过为什么*不用转义,而+需要转义一直表示不解,直到看了如下解释:
[grant@autotest16 test]$ man grep
……………………………
In basic regular expressions the metacharacters ?, +, {, |, (, and )
lose their special meaning; instead use the backslashed versions \?,
\+, \{, \|, \(, and \).
……………………………
4. 把替换好的格式文件,传到Windows,然后用Excel打开,并通过简单的操作,得到如下漂亮的图案.

