-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 amateur 写道: > 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 >>>>> */ 这种注释就比 >>>>> 较麻烦了。 > 要我碰这种情况就写C代码了——不过考虑情况蛮多的,应该有50多行吧—— 或者要么你三次匹配,头两次是完全的替换/*或者*/为\n/*或者*/\n。然后再匹 配——就是比较蠢了——
- -- 与其相濡以沫,不如相忘于江湖 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFbu9SOhzb4WnHl2oRAt1bAKCrffeDfo/Mn7T2JZT29kwIwUBpZACfWpCJ mOOAR8snD1x6/0+o4CGXSPM= =A2Rv -----END PGP SIGNATURE-----