[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 问一个sed的问题



On Wed, Nov 29, 2006 at 09:19:54PM +0800, shell wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> amateur 写道:
> > On Wed, Nov 29, 2006 at 07:29:53PM +0800, jun yu wrote:
> >> 可以的
> >>
> >> http://www-128.ibm.com/developerworks/cn/linux/shell/sed/sed-1/index.html
> >>
> >> 具体你可以看上面链接的介绍.
> >
> > 上面好象没有提到任何与多行模式相关的内容,不知道你是怎么做的,能提示一
> > 下吗?比如下例:
> >
 >
> 虽然不知道怎么做,不过main函数的匹配就是典型的多行匹配。

那是我没有表达清楚了,我的主要目的是去掉源代码中的注释,这个需要在多行
中进行搜索匹配,应该不是多行替换,因为 sed 的替换操作好似只能在一行内
使用,而 sed 的行操作 (d/p) 都是针对整行进行的,比如我用匹配 main 函数
的方法匹配注释的话,就会是的包含有 /* */ 注释的所有行都会被删除。象下
面的例子就不能用这种方法:

 int main()
 {
     do_something; /* this block is commented
     do_other_thing;
     ...
     do_third_thing; */

 }

> >>> 有没有办法使得可以替换多行内容,比如将一个 C++
> >>> 语言源文件中的所有注释
> >>> 全部去掉,对于 // 开始的注释比较好处理,但对于 /* xxx
> >>> */ 这种注释就比
> >>> 较麻烦了。

-- 
Be careful of reading health books, you might die of a misprint.
		-- Mark Twain



Reply to: