中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 过滤出EMAIL 地址 『已结』 上一主题 | 下一主题
uiopuiop
中级用户





积分 400
发帖 211
注册 2007-9-30
状态 离线
『楼 主』:  过滤出EMAIL 地址 『已结』

需要从一个文本文件里过滤出EMAIL 地址,但碰到点问题。

(work@home you can visit www.test.com)并不是我想要的EMAIL地址。希望能用纯批处理来实现这个功能,谢谢!

C:\temp>findstr "[a-z0-9]@[a-z0-9]." test.txt
  work@home you can visit www.test.com
  afdf@test.com
          test2@test2.com
                zzd@tests.com
                badbu@test.com.cn


文本如下:(email 两边或许会有些空格或TAB,前N行有些乱七八糟的文字)
luan ti ba zao de wen zi
  work@home you can visit www.test.com
[tab]afdf@test.com
       [tab]   [] test2@test2.com [tab] [tab]
       [tab]    [tab]     zzd@tests.com [tab][tab]
           []     badbu@test.com.cn [tab]

[ Last edited by uiopuiop on 2009-5-17 at 10:25 ]

2009-5-14 01:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

用FR 才是王道

type a.txt|fr -ric:"[ \t]*([a-z_0-9]*@[a-z_0-9].[a-z]*)[ \t]*" -t:"\1"

没有测试过,代码可能不对

FR 下载http://baiy.cn/utils/fr/index.htm

[ Last edited by yishanju on 2009-5-14 at 04:50 ]




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-5-14 04:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
uiopuiop
中级用户





积分 400
发帖 211
注册 2007-9-30
状态 离线
『第 3 楼』:  

纯批处理不能做吗?

2009-5-14 11:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  


//var a=WScript.Arguments;if (a.Length > 0) WScript.Echo(a(0).match(/\w+@\w+\.\w+/));
var a=WScript.Arguments;
if (a.Length > 0){
var f=new ActiveXObject("Scripting.FileSystemObject");
var u=f.OpenTextFile(a(0).replace(/\\/g,"\\\\"),1).ReadAll().match(/\w+@\w+\.\w+/g);
//WScript.Echo(u);
for (i=0;i<u.length;i++)WScript.Echo(u[i]);
}
cscript my.js 1.txt



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-5-14 15:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
uiopuiop
中级用户





积分 400
发帖 211
注册 2007-9-30
状态 离线
『第 5 楼』:  

多谢各位,但是我还是希望能用纯批处理来实现这个功能,谢谢!

2009-5-14 23:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 6 楼』:  


@echo off
for /f "delims=" %%a in (b.txt) do (
echo %%a|findstr "[a-z0-9]*@[a-z0-9]*\.[a-z0-9]*" >nul&&set/ac+=1&&call :replace "%%a" %%c%%
)
set new
pause
goto :eof

:replace
set x=0
set src=%~1
set tmp=%src:*@=%
call set src=%%src:%tmp%=%%
for %%i in (%src%) do set tmp=%%i%tmp%
for %%i in (%tmp%) do set/ax+=1,1/(1/x)2>nul&&echo %%i&&set dst=%%i
set newmail%~2=%dst%
goto :eof
纯批的,不容错



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-5-15 03:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
uiopuiop
中级用户





积分 400
发帖 211
注册 2007-9-30
状态 离线
『第 7 楼』:  楼上你好!

不容错?什么意思?

高手!果然管用,但我没看懂你是如何把  空格,TAB 都给去掉的?

set/ax+=1,1/(1/x)2  何意 ?

set new 这个变量什么地方冒出来的?

[ Last edited by uiopuiop on 2009-5-15 at 10:58 ]

2009-5-15 07:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 8 楼』:  

是使用set替换字符串时的通配方法,将你原来的字符串自"@"符号分成两部分
例如
    []     badbu@test.com.cn [tab]
就分成了
    []     badbu

@test.com.cn [tab]
然后使用for按空格分割输出,第一个字符串,保留最后一个
第二个字符串保留第一个
set /a x+=1,1/(1/x)&&echo %%i就是用来判断是不是第一个

set new是显示以new打头的变量
这些变量是
set newmail%~2=%dst%
来定义的

   此帖被 +3 点积分       点击查看详情   
评分人:【 uiopuiop 分数: +3  时间:2009-5-16 10:33




49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-5-16 06:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
uiopuiop
中级用户





积分 400
发帖 211
注册 2007-9-30
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by everest79 at 2009-5-16 06:21 AM:
是使用set替换字符串时的通配方法,将你原来的字符串自"@"符号分成两部分
例如
    []     badbu@test.com.cn [tab]
就分成了
    []     ba ...

多谢啊,学习了。。。

用空格分隔,但你又是如何吧TAB去掉的?

2009-5-16 11:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 10 楼』:  

你可以关掉回量,只输入一行文本来仔细观察下



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-5-17 07:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangfengoo
初级用户




积分 47
发帖 41
注册 2009-4-24
状态 离线
『第 11 楼』:  

学习了.讲得很好.可惜我不能评分..



正在学习中……
2009-5-17 09:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: