免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4741 | 回复: 19

请教多行匹配问题  关闭 [复制链接]

论坛徽章:
0
发表于 2004-12-05 03:10 |显示全部楼层
请教一下关于多行匹配的问题
假设我有一个a.html,大致格式如下
<table>
...{3行,内容不定}
</table>
<table>
...{7行,内容不定}
</table>
<table>
...{30行,内容不定}
</table>

我想把前2个<table>和</table>的所有内容都删除掉,该如何匹配??

我尝试着用
sed  '/^<table\n\{3,7\}^<\/table/d' a.htm
sed  '/^<table\n*\{3,7\}^<\/table/d' a.htm
sed  '/^<table\n.*\{3,7\}^<\/table/d' a.htm

都没办法做到...请教一下如何匹配????谢谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-12-05 11:25 |显示全部楼层

请教多行匹配问题

  1. cat a.html|sed '1,/\/table/d'|sed '1,/\/table/d'
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-12-05 13:09 |显示全部楼层

请教多行匹配问题

    

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-12-05 14:02 |显示全部楼层

请教多行匹配问题

[quote]原帖由 "wingger"]    [/quote 发表:

MM笑啥? 我只会用这个笨到法子啦

论坛徽章:
0
发表于 2004-12-05 15:42 |显示全部楼层

请教多行匹配问题

因为...前两个<table>和</table>中间还可能出现<table>或</table>的...我抓的那个html是别人写的,虽然它格式比较规范,利用^能躲开,但是如果遇到不规范的就惨了...

     谢谢寂寞烈火的解答,不知道有其他解答否??

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-12-05 15:46 |显示全部楼层

请教多行匹配问题

如果文件不够答大到话,用
nl file找出所在行号在提取吧
呵呵,还是让高手来看看吧  

论坛徽章:
0
发表于 2004-12-05 16:19 |显示全部楼层

请教多行匹配问题

其实是想写个天气小偷...把qq的天气抓过来的
打算写成shell定时偷到数据后改页面。...卡卡...
虽然用php或许有笨办法,但是还是想用shell来做做,以前有次做多行匹配我就逃避了,不能再躲避了...

论坛徽章:
0
发表于 2004-12-06 00:44 |显示全部楼层

请教多行匹配问题

对于不规范的, 用 sed 力不从心。 awk 则不难。
试试自己写一个吧。

参考 http://bbs.chinaunix.net/forum/viewtopic.php?t=428073

论坛徽章:
0
发表于 2004-12-06 02:02 |显示全部楼层

请教多行匹配问题

那帖子我去看了,不过有点不明白
time sed 's/\([{}]\)/\n\1\n/g' test.c|awk '{ if($1 == "{" {i++; j=1;} else if ($1 == "}" i--; if (i == 0 && j =
= 0 && $0 != "" print; if ( i == 0 ) j=0;} END { if ( i != 0 ) print " Error: Unmatched { and } !!! "}' > aaa

1.首先是sed 's/\([{}]\)/\n\1\n/g' 这里的\1没看明白意思
2.awk这里,没有用-F指定分割符,那就是用空格来分...那出的$1的值是{的情形..
3.我所请教的问题中,最麻烦的一点是...我只想匹配中间行有3~7行的情形...对于<table>和</table>之间多于7行的,我还是打算保留的(这个想来用awk的判断可能可以做,但是或许很麻烦...因为有个如果符合3~7行的条件,得回头去删除的问题在内)

看来用php逐行读的方式来做还方便点...或许我的问题有点太刁钻咯。..

论坛徽章:
0
发表于 2004-12-06 12:46 |显示全部楼层

请教多行匹配问题

我觉得还是好好研究一下html中,你要删除内容的结构特点,只要能用shell表现,就没问题。通常我们这个问题解决不了,一是因为对数据结构特点了解不深入,一是因为对shell了解的不深入。建议你把那个html文档贴出来,大家研究一下:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP