标题: [文本处理] [已解决]批处理如何提取大文件文本指定文本? [打印本页]
作者: daohe 时间: 2012-1-11 15:13 标题: [已解决]批处理如何提取大文件文本指定文本?
本帖最后由 daohe 于 2012-1-12 23:47 编辑
一个txt文本,几百万行,目的是为了提取下面文档的邮箱,然后保存到指定文本文档
每一行内容如下:
dfhmail # XXXxxx # dfhmail@tom.com
yxinlai # xxxxxxxx # yxinlai@gmail.com
bauga # xxx # abc@qq.com
12sdfs # xxxxx # abc@163.com
yxinlai # xxxxxxxx # abcdef@gmail.com
(xxx内容包含字母,数字,空格,符号等)
指定一个字符串 @gmail.com,@163.com,@qq.com等(可以自行添加),提取 第二个#号后面的邮箱,储存与对应的文本文档,
比如gmail.com.txt,163.com.txt,qq.com.txt,内容分别是:
gmail.com.txt
yxinlai@gmail.com
abcdef@gmail.com
----
163.com.txt
abc@163.com
-----
qq.com.txt
abc@qq.com
---
请考虑文本行数,数量巨大(几百万行),需要执行高效率。
作者: ivor 时间: 2012-1-11 15:28
- @echo off
- for /f "tokens=1-3 delims=#" %%i in (a.txt) do (
- echo %%i # %%j # %%k >> %%k.txt
- )
复制代码
作者: daohe 时间: 2012-1-11 16:11
本帖最后由 daohe 于 2012-1-11 16:24 编辑
回复 2# ivor
谢谢,但是不是这样。我是想提取包含gmail的所有邮件全部存在gmail.com.txt里。井号#前面的字符串不要。只要保留邮箱就行。
作者: find 时间: 2012-1-11 17:19
- gawk -F# "{gsub(/ /,\"\",$3);split($3,a,\"@\");print a[1]\"@\"a[2] >a[2]\".txt\"}" a.txt
复制代码
作者: applba 时间: 2012-1-11 17:34
楼主不会是下载了网上泄露的密码数据库?
提取后有何用途?
作者: ivor 时间: 2012-1-11 18:03
- @echo off
- for /f "tokens=1-3 delims=#" %%i in (a.txt) do (
- for /f "tokens=1,2 delims=@" %%a in ("%%k") do (
- echo %%a@%%b >> %%b.txt
- )
- )
- pause
复制代码
这样可以吗?,如果不行等我吃完饭再说
回复 3# daohe
作者: daohe 时间: 2012-1-12 23:36
回复 5# applba
恩。下载了整理,分析数据用。
作者: daohe 时间: 2012-1-12 23:47
感谢各位。已经解决
作者: CrLf 时间: 2012-1-13 00:04
最近各种泄露,邮箱算是比较敏感的话题,建议询问者若有咨询此类问题,先说明用途,而答题者也最好确认对方有正常用途再作回答。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |