免费注册 查看新帖 |

Chinaunix

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

awk的模糊匹配问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-19 16:35 |只看该作者 |倒序浏览
请问坛中大侠们,
在awk脚本中是不是不能设置字段长度呢?
比如说match($2,/<td class=d>.{1,3000}<td class=spd>/),为什么就匹配不上呢,如果我用match($2,/<td class=d>.*<td class=spd>/)又会产生模糊匹配。
这个问题怎么解决呢,
困扰我大半天拉。

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2008-06-19 16:50 |只看该作者
加上--posix选项试试

论坛徽章:
0
3 [报告]
发表于 2008-06-19 16:52 |只看该作者
<td class=d>和后面一个标签之间会不会还有包含<>的内容,如果没有,可以使用
/<td class=d>[^<]*<td class=spd>/这样来匹配

论坛徽章:
0
4 [报告]
发表于 2008-06-19 16:54 |只看该作者
也没管用
我试过--posix 以及--re-interval,然后把{}这个也转义过,也没管用。
不知道哪里出毛病拉

论坛徽章:
0
5 [报告]
发表于 2008-06-19 16:58 |只看该作者
原帖由 jinl 于 2008-6-19 16:52 发表
和后面一个标签之间会不会还有包含的内容,如果没有,可以使用
/[^



包含了啊,要匹配的内容之间有任意的字符集不好弄啊
我随便找个例子吧。
源文件大概是这样的:

<tr>
<td class=tdn>1</td>
<td class=d><a href="http://220.181.38.82/m?ct=134217728&tn=baidusg,不辣不辣  &word=mp3,http://8kuyy.suhyy.cn/be/lJyanJ2bNw$$.mp3,,[%B2%BB%D2%AA%B5%B2%D4%DA%CE%D2%B5%C4%C3%E6%C7%B0]&si=%B2%BB%C0%B1%B2%BB%C0%B1;;5566;;237447;;237447&lm=16777216" title="请点击左键!来源网址:  http://8kuyy.suhyy.cn   请参照百度权利声明使用" onclick="return ow(event,this)"  target="_blank">不辣不辣  </a><br><font color="#999999" class=f10>... 闹别闹别闹别闹    <font style=color:#e10900>不要</font><font style=color:#e10900>挡</font><font style=color:#e10900>在</font><font style=color:#e10900>我</font><font style=color:#e10900>的</font>眼前    别闹别 ... 孬别孬    乖乖跪<font style=color:#e10900>在</font><font style=color:#e10900>我</font><font style=color:#e10900>的</font><font style=color:#e10900>面前</font>酱爆        ... </font></td>
<td><a href="http://mp3.baidu.com/singerlist/5566.html" target="_blank">5566</a>&nbsp;<a href="http://mp3.baidu.com/singerlist/.html" target="_blank"></a>&nbsp;<a href="http://mp3.baidu.com/singerlist/.html" target="_blank"></a>&nbsp;</td>
<td class=al><a href="http://mp3.baidu.com/albumlist/5566;;;;;;%BA%C8%B2%C9.html" target="_blank">喝采</a>&nbsp;</td>
<td><a href="http://box.zhangmen.baidu.com/m?gate=1&ct=134217728&tn=baidumt,不辣不辣  &word=mp3,http://8kuyy.suhyy.cn/be/lJyanJ2bNw$$.mp3,,[%B2%BB%D2%AA%B5%B2%D4%DA%CE%D2%B5%C4%C3%E6%C7%B0]&si=%B2%BB%C0%B1%B2%BB%C0%B1;;5566;;237447;;237447&lm=16777216" onclick="return ot(event,this,'237447')">试听</a>&nbsp;</td>
<td><a href="http://mp3.baidu.com/m?tn=baidump3lyric&word=5566+%B2%BB%C0%B1%B2%BB%C0%B1&ct=150994944&lm=-1&lf=3" target="_blank">歌词</a>&nbsp;</td>
<td> <a name="ls" href="http://mp3.baidu.com/tr?url=http://my.12530.com/newchannel/orderTone/600902000000911865/1/2703/2703_zlss/-/-/order.htm&sn=1" onclick="return or(event,this);">铃声</a>&nbsp;</td>
<td>4.0 M</td>
<td>mp3</td>
<td class=spd><img src="http://img.baidu.com/img/mp3/d9.gif"></td>
</tr><tr>

我要把<td class=d>和<td class=spd>之间的内容匹配出来。
而整个文件大概就是由任意多的这种内容组成

论坛徽章:
0
6 [报告]
发表于 2008-06-19 17:19 |只看该作者
那用sed来处理呢
sed -n '/<td class=d>/,/<td class=spd>/p' ufile|sed -e 's/<td class=d>//' -e 's/<td class=spd>.*//'

[ 本帖最后由 jinl 于 2008-6-19 17:32 编辑 ]

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
7 [报告]
发表于 2008-06-19 17:20 |只看该作者
sed -n '/<td class=d>/,/<td class=spd>/p' urfile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP