免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: heixia108
打印 上一主题 下一主题

请问,匹配剩下的模式怎么写(awk)(已解决,谢谢大家) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 00:59 |显示全部楼层 |倒序浏览
我想抽取"/*" ,"*/"之间的内容,匹配
“/*”   { }
“*/”    { }
后,要匹配剩下的模式,应该怎么写
谢谢

[ 本帖最后由 heixia108 于 2009-5-14 22:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-14 01:05 |显示全部楼层
对于
/*
test
*/
我只想打印test,

我是这样写的
"/*"  {}
"*/"  {}
{ print }

很明显  { print }前需要加一个模式,不知道那个模式怎么写

[ 本帖最后由 heixia108 于 2009-5-14 01:07 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-05-14 08:34 |显示全部楼层
谢谢大家。
在写程序时在每个文件开头都写了一个类似
/*
    内容
*/
的对程序作用进行描述的东西,接着的是代码。现在想通过awk把它些内容提取出来,对于后面出现的注释不用理。

我写了个代码

BEGING   { begin = 0; end = 0 }

"/*"    {
                 if( end == 0 )
                      begin = 1
           }
"*/"     {
                 begin = 0
                 end = 1
           }
""(这里应该加个模式吧)    {
                                            if( begin )
                                                    print
                                     }

上面的模式应该怎么写呢

论坛徽章:
0
4 [报告]
发表于 2009-05-14 08:52 |显示全部楼层

回复 #9 ubuntuer 的帖子

3q,  用next  就可以了

这个和c语言中的
switch( )
{
         case  "":   break  
        case ""  :
        ...
}

类似,如果不break就会一直匹配下来

[ 本帖最后由 heixia108 于 2009-5-14 08:57 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-05-14 08:54 |显示全部楼层

回复 #10 我是DBA 的帖子

要是有多行内容就不行了呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP