找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25368|回复: 8

[文本处理] [已解决]批处理如何提取大文件文本指定文本?

[复制链接]
发表于 2012-1-11 15:13:20 | 显示全部楼层 |阅读模式
本帖最后由 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
---

请考虑文本行数,数量巨大(几百万行),需要执行高效率。

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-1-11 15:28:30 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-3 delims=#" %%i in (a.txt) do (
  3.         echo %%i # %%j # %%k >> %%k.txt
  4. )
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-1-11 16:11:29 | 显示全部楼层
本帖最后由 daohe 于 2012-1-11 16:24 编辑

回复 2# ivor


    谢谢,但是不是这样。我是想提取包含gmail的所有邮件全部存在gmail.com.txt里。井号#前面的字符串不要。只要保留邮箱就行。
发表于 2012-1-11 17:19:06 | 显示全部楼层
  1. gawk -F# "{gsub(/ /,"",$3);split($3,a,"@");print a[1]"@"a[2] >a[2]".txt"}" a.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2012-1-11 17:34:59 | 显示全部楼层
楼主不会是下载了网上泄露的密码数据库?
提取后有何用途?

评分

参与人数 1PB +5 收起 理由
CrLf + 5 考虑周全

查看全部评分

发表于 2012-1-11 18:03:36 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-3 delims=#" %%i in (a.txt) do (
  3.         for /f "tokens=1,2 delims=@" %%a in ("%%k") do (
  4.                 echo %%a@%%b >> %%b.txt               
  5.         )
  6. )
  7. pause
复制代码
这样可以吗?,如果不行等我吃完饭再说

回复 3# daohe
 楼主| 发表于 2012-1-12 23:36:40 | 显示全部楼层
回复 5# applba

恩。下载了整理,分析数据用。
 楼主| 发表于 2012-1-12 23:47:14 | 显示全部楼层
感谢各位。已经解决
发表于 2012-1-13 00:04:17 | 显示全部楼层
最近各种泄露,邮箱算是比较敏感的话题,建议询问者若有咨询此类问题,先说明用途,而答题者也最好确认对方有正常用途再作回答。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:24 , Processed in 0.020393 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表