免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2030 | 回复: 5
打印 上一主题 下一主题

awk正文{}内外的区别? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-03 12:11 |只看该作者 |倒序浏览
Script A:
#!/bin/awk -f
BEGIN{
        FS="[<>]"
}
{
        /width=60/; { print $7}
}


Script B:
#!/bin/awk -f
BEGIN{
        FS="[<>]"
}
{
}
/width=60/ { print $7}


待处理文本如下:
<TD style="FONT-SIZE: 9pt; COLOR: #003366; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体" width=91 height=44><SPAN style="COLOR: blue"><FONT size=3>书名</FONT></S    PAN></TD>
<TD style="FONT-SIZE: 9pt; COLOR: #003366; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体" width=60 height=44><SPAN style="COLOR: blue"><FONT size=3>下载</FONT></S    PAN></TD>


Script A:中的/width=60/这个匹配根本没起作用,没包含这个pattern的也print了。
Script B中的起了作用。

不解中,

[ 本帖最后由 乡下人进城 于 2008-4-3 12:49 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2008-04-03 12:20 |只看该作者
/要匹配的模式/{行为1;行为2;...;行为N}

论坛徽章:
0
3 [报告]
发表于 2008-04-03 12:21 |只看该作者
有个分号 就是和前面的顺序并列执行.
/  /找到了就返回1
1就print了呗

论坛徽章:
0
4 [报告]
发表于 2008-04-03 12:47 |只看该作者
原帖由 nuclearxin 于 2008-4-3 12:21 发表
有个分号 就是和前面的顺序并列执行.
/  /找到了就返回1
1就print了呗


问题script a中的没找到也print了。

论坛徽章:
0
5 [报告]
发表于 2008-04-03 12:50 |只看该作者
原帖由 乡下人进城 于 2008-4-3 12:47 发表


问题script a中的没找到也print了。

;后面必然执行
在打印所有行的基础上 前面的  /xxxxx/是1的话 多打印此行

论坛徽章:
0
6 [报告]
发表于 2008-04-03 13:05 |只看该作者
搞明白了一些,谢谢几位的热心回复。
awk{}里面只能放action,不能放pattern。放了pattern不加;号会报错,加了分号确远非我想要的结果。
我把{}和shell里面用来标识一系列语句{}混淆了,此{}非彼{}.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP