- 论坛徽章:
- 0
|
从书上看了一个例子,想请教下我的理解对不对,希望高手指正!
- [root@localhost ch05]# more testmail
- From root@localhost.localdomain Mon Dec 11 00:24:00 2006
- Date: Mon, 11 Dec 2006 00:23:58 +0800
- From: root <root@localhost.localdomain>
- To: root@localhost.localdomain
- Subject: LogWatch for localhost.localdomain
- ################### LogWatch 4.3.1 (01/13/03) ####################
复制代码
- [root@localhost ch05]# sed '/^From /,/^$/{
- s/^From //p
- c\
- <mail header removed>
- } ' testmail
- root@localhost.localdomain Mon Dec 11 00:24:00 2006
- <mail header removed>
- <mail header removed>
- <mail header removed>
- <mail header removed>
- <mail header removed>
- <mail header removed>
- ################### LogWatch 4.3.1 (01/13/03) ####################
- [root@localhost ch05]#
复制代码
sed始终是按行编辑的,这个脚本的命令是:
第一行:先删除From这个单词和一个空格,然后打印这一行,再用<mail header removed>替换这一行。脚本到底部以后会产生输出,所以会输出2行:
- root@localhost.localdomain Mon Dec 11 00:24:00 2006
- <mail header removed>
复制代码
然后sed脚本开始应用于第二行,模式空间读入第二行以后被换为第二行的内容,
因为第一个命令无法匹配而生效,所以,脚本到尾部替换完以后的
会被输出。
第三行,第四行,第五行,一行空格。也是如此。

谢谢了! |
|