免费注册 查看新帖 |

Chinaunix

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

用SHELL怎么从文本里提取邮件地址出来。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-23 15:29 |只看该作者 |倒序浏览
我要从maillog 提取出邮件地址,目前正则搞不定,以下二条语句都不成功。


#!/usr/bin/env bash
stringZ="/bl?ip=86.107.8.100; from=<plummetrdz@xxxx-xx.com> to=<sales@xxxx.com.cn>"
echo `expr match "$stringZ" '\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*'`


这样也不行

grep -o "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" a.txt



正则肯定没错,因为我用c#试过,难道SHELL的正则跟其它语言的不一样,没理由啊!!!

[ 本帖最后由 rd16 于 2009-10-23 15:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-24 00:52 |只看该作者
grep -o "[^<]*@[^>]*"

论坛徽章:
0
3 [报告]
发表于 2009-10-24 11:31 |只看该作者
grep -o "[^<]*@[^>]*"


这个不行。

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
4 [报告]
发表于 2009-10-24 12:01 |只看该作者
原帖由 ly5066113 于 2008-9-9 15:58 发表
grep -Eo '[0-9a-zA-Z_]+@[0-9a-zA-Z_.]+' filename


试试

论坛徽章:
0
5 [报告]
发表于 2009-10-24 12:21 |只看该作者
awk 'BEGIN{RS="<";FS=">"}{print $1}' a.txt|sed '1d'

论坛徽章:
0
6 [报告]
发表于 2009-10-24 23:08 |只看该作者

# awk 'BEGIN{RS="<";FS=">"}{print $1}' maillog|sed '1d'
sunnoes@yahoo.com
smtp2001soho@yahoo.com
sunnoes@yahoo.com


正解



# grep -Eo '[0-9a-zA-Z_]+@[0-9a-zA-Z_.]+' maillog
sunnoes@yahoo.com
smtp2001soho@yahoo.com
sunnoes@yahoo.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP