[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 利用sed能提取出文本中的email地址吗?(已解决)

请问下,哪位大大能把文本中的email地址提取出来?文本:
[email]Mehak@gmail.com[/email] | Facebook
    https://www.facebook.com/pages/Mehakgmailcom/248181861872358?
    [email]Mehak@gmail.com[/email]. University. 9 people like this. Want to like this page? Sign up for Facebook to get started. Sign Up. It's free and anyone can join. Already a ...
    Team Drake and Kennedy ([email]drakeandkennedy@gmail.com[/email] ...
    https://www.facebook.com/TeamDrakeAndKennedy?
    Team Drake and Kennedy ([email]drakeandkennedy@gmail.com[/email]). 1120 likes · 374 talking about this. Drake and Kennedy's journey into this world has been a ...
    [email]Alice.williams.com@gmail.com[/email] | Facebook
    https://www.facebook.com/.../Alicewilliamscomgmailcom/31452919192...?
    [email]Alice.williams.com@gmail.com[/email]. 7 likes · 0 talking about this.
    [email]sadia22222@gmail.com[/email] - Sadia Sabreen Shammee | Facebook
    https://www.facebook.com/permalink.php?story_fbid...id...?
    Flamboyant Nayeem, Jumon Ahmed, Maruf Hasan and 39 others like this. 48 of 355. View previous comments. Muhammad Kashif 03216663232 my number ...
    [email]Macharla.mallikarjun@gmail.com[/email] | Facebook
    https://www.facebook.com/Macharlamallikarjungmailcom?
    [email]Macharla.mallikarjun@gmail.com[/email]. 4 likes · 0 talking about this.
    [email]HOGER.EVENTOS@GMAIL.COM[/email] | Facebook
    https://www.facebook.com/.../HOGEREVENTOSGMAILCOM/2733076...?
    [email]HOGER.EVENTOS@GMAIL.COM[/email]. 11 likes · 0 talking about this.
    [email]Abdulwahab@Gmail..com[/email] - Local Business | Facebook
    https://www.facebook.com/.../AbdulwahabGmailcom/211068888974266?
    [email]Abdulwahab@Gmail..com[/email]. 17 likes · 0 talking about this · 13 checkins.
    www.gmail.com - Photos | Facebook
    https://www.facebook.com/pages/wwwgmailcom/162880424899?sk...?
    www.gmail.com, Las Mercedes, Venezuela. 69204 likes · 998 talking about this.
    Gmail.com | Facebook
    https://www.facebook.com/www.gmail.com.email?
    www.gmail.com - Gmail has become one of the best used web based email service in the world for both personal and professional use. You can access Gmail ...
    Bappa CHI Kheti at Gmail.com | Facebook
    https://www.facebook.com/BappaChiKhetiAtGmailcom?
    Bappa CHI Kheti at Gmail.com. 4 likes · 0 talking about this.

排除 www.gmail.com不要,只要真正的gmail邮箱地址,我看了很长时间的sed了,奈何太菜,一直下不了手啊,谁能帮下多谢多谢.[attach]6597[/attach]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 wangb70 于 2013-7-26 10:41 编辑

回复 17# Python

看了2遍"抛砖引玉----翻译加注sed1line",我直接找删除重复行的例子,好象没看见啊,是不是它没有直接说明是删除重复行,而要自己变化变化用法?
我再仔细看看.原来在这里:# delete duplicate, consecutive lines from a file (emulates "uniq")
# First line in a set of duplicate lines is kept, rest are deleted.
#删除文件中重复的连续的行(似于"uniq"命令)
#重复行中第一行保留,其他删除
sed '$!N; /^\(.*\)\n\1$/!P; D'  
###如果不是最后一行,就把下一行附加在模式空间,然后进行查找操作
###"^"和"$"中间的内容如果有重复就匹配成功.如果匹配不成功就用P打印
###第一行. 然后删除第一行.

# delete duplicate, nonconsecutive lines from a file. Beware not to
# overflow the buffer size of the hold space, or else use GNU sed.
#删除文件中重复的,但不连续的行。注意不要溢出保留空间的缓冲器的大小,
#否则使用GNU sed.
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'   
###在我的linux环境执行不了,出错是sed: -e expression #1, char 34:
###Invalid range end.是不是所谓的溢出保留空间的大小了呢?我也不得而知.
###大家补充吧.!!?????????????????

TOP

回复 16# wangb70


双引号是命令分隔符,告诉sed双引号里面是它需要执行的命令。
这个例子中的斜线里面的内容是用于正则匹配的。

sed1line里面有删除重复行的例子,可以参考一下:
http://bbs.chinaunix.net/thread-336126-1-1.html

TOP

回复 2# Python

python好,是不是应该这样的

sed -n "/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/p" d:\5.txt

结果有些偏差啊,sed可以去重复嘛?
我自己瞎写的是这样的:
sed "/@gmail/!d" d:\5.txt

不"干净",不是纯粹的email地址,把整行都弄下来了,其实,只需要email地址,别的不要.
请帮我看下下列理解对不对:
sed "/@gmail/!d" 中,一对双引号"",在最外边,把其他的包括起来,一对斜线//,里面放的是匹配的正则,也可能是直接的表达,我不太清楚这一对双引号和一对斜线//是什么意思,如何正确使用,网上sed资料看了不少,还是概念不清楚啊,唉.

TOP

回复 7# CrLf


    谢谢crlf,不过好象有点问题,是不是我哪里没操作好,

TOP

回复 11# Python


    多谢提醒,我不怕大家笑话,确实是菜鸟,不过,我讨厌自己这么菜,决心慢慢摸索学习.

TOP

回复 8# terse


    太好了,让我佩服,sed没想到也可以,高兴.

sed能去重复吗?

TOP

回复 3# batman
版主好,这个方法可以
还想问问,如何去重复,可以推广应用到其他搜索引擎吗,如yahoo,必应等.

TOP

回复 10# wangb70


    下载一个sed.exe放到C:\Windows\system32目录下面,打开cmd窗口,执行他们帮你写的命令。

TOP

谢谢大家,我有点晕了,需要消化消化.我的环境是xp,想要的效果是这样的:
[email]Mehak@gmail.com[/email]
[email]drakeandkennedy@gmail.com[/email]
[email]Alice.williams.com@gmail.com[/email]
[email]sadia22222@gmail.com[/email]
[email]Macharla.mallikarjun@gmail.com[/email]
每行一个email地址,去掉重复的.
我也不懂使用sed实现,难不难,感觉可以的,能再看看吗?我还想通过这个事,学习熟悉sed,因为sed应该懂点嘛.

TOP

google mail注册是有特定格式的:

您可以使用字母、数字和英文句点。

输入的字符数应在 6 到 30 之间。

TOP

本帖最后由 terse 于 2013-7-24 20:45 编辑
  1. sed -nr "s/.*[ (](.*@gmail[\.]+com).*/\1/ip" "a.txt"
复制代码
1

评分人数

TOP

忽然发现原来每行只有一个地址,那就只需要一个 sed 了
  1. sed "s/^.*\([^0-9a-zA-Z.][0-9a-zA-Z.]{1,100}@\w\w*\.\w\w*\).*$/\1/g" a.txt
复制代码

TOP

大多数脚本语言,处理此类问题的逻辑如下:
1 用findstr,select-string,grep,查找行首是字母,或者行首是空格,后续是任意的,再后续是gmail.com 的行。
对这样的每一行
2 掐头,去掉从行首到空格的内容。
3 去尾,去掉gmail.com 后面的内容。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

[email]Abdulwahab@Gmail..com[/email]

这里的两个点怎么解释?
nevermore

TOP

返回列表