免费注册 查看新帖 |

Chinaunix

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

awk如何取域? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-21 14:14 |只看该作者 |倒序浏览
我想用awk取某个html页中的<A HREF="xxxxx">432432</A>中的xxxxx部分,请教该怎么取?

[ 本帖最后由 chzht001 于 2008-2-21 14:17 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-02-21 14:21 |只看该作者

  1. #awk -F"\"" '{print $2}' ufile
复制代码

论坛徽章:
0
3 [报告]
发表于 2008-02-21 14:27 |只看该作者
原帖由 无声无息 于 2008-2-21 14:21 发表

#awk -F"\"" '{print $2}' ufile



是我说少了,通常html页中会有许多的"而不是我上面写的,所以你这个命令好像不行啊

论坛徽章:
0
4 [报告]
发表于 2008-02-21 15:33 |只看该作者
如果在一行中是唯一的

  1. sed 's/.*<A HREF="\([^"]\+\)".*/\1/'  urfile

  2. gawk  '{print gensub(/.*HREF="([^"]+)".*/,"\\1","g",$0)}' urfile
复制代码

[ 本帖最后由 davistar 于 2008-2-21 15:40 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-02-21 16:12 |只看该作者
/[hH][rR][eE][fF]/ {
        match($0, "[hH][rR][eE][fF][ \t]*=[ \t]*[^ \t>]+");

        hyper_link = substr($0, RSTART, RLENGTH);

        hyper_link = substr(hyper_link, index(hyper_link, "=") + 1);

        if(substr(hyper_link, 1, 1) == "\"" || substr(hyper_link, 1, 1) == "\'")
                hyper_link = substr(hyper_link, 2);

        if(substr(hyper_link, length(hyper_link), 1) == "\"" || substr(hyper_link, length(hyper_link), 1) == "\'")
                hyper_link = substr(hyper_link, 1, length(hyper_link) - 1);

        printf("href = [%s]\n", hyper_link);
}

论坛徽章:
0
6 [报告]
发表于 2008-02-21 19:01 |只看该作者
awk 'BEGIN{RS="\""}{if($0~/=$/)next;print;exit 0}' filename

论坛徽章:
0
7 [报告]
发表于 2008-02-22 10:11 |只看该作者

回复 #1 chzht001 的帖子

CODE:
sed 's/.*<A HREF="\([^"]\+\)".*/\1/'  urfile

gawk  '{print gensub(/.*HREF="([^"]+)".*/,"\\1","g",$0)}' urfile

4楼的好,其他都有很大局限性的。
lz最多在前面用grep精确找下 HREF, 再用管道连上4楼的,个人觉得ok了。
e.g. grep 'HREF\>' urfile|gawk  '{print gensub(/.*HREF="([^"]+)".*/,"\\1","g",$0)}'

论坛徽章:
0
8 [报告]
发表于 2008-02-22 12:06 |只看该作者
php写的.

<?php
//<A HREF="xxxxx">432432</A>
//指定url地址
$page = "http://www.u.cn/";
//获取url的html代码
$html = file_get_contents($page);
//通过正则表达式匹配所要的数据
preg_match_all("/href=\"[a-z\.]+\">([^<]+)</",$html,$out);
print_r($out);
?>


OUTPUT:

Array
(
    [0] => Array
        (
            [0] => href="help.html">★软件使用帮助<
        )

    [1] => Array
        (
            [0] => ★软件使用帮助
        )

)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP