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

[文本处理] 批处理如何批量删除纯文字的那行那行?

小弟最近遇到一个项目,需要把全中文字符存在的那行全部删除到,
  考虑到数据比较多【10多万条】,所以想用批处理尝试下
目的就是想获取到每行里面的联系方式,要获取内容那行肯定存在数字,有些是微信,就是字母+数字
    如果全部是中文的话,那行肯定就不存在联系方式了,可删除。


正文内容如下:
  1. 顶到300楼 太棒-----
  2. 不得不顶啊!-----
  3. 很好啊,-----
  4. 很牛逼啊~~~~~~~~~-----
  5. 好精彩,非常的喜欢,楼主再继续发!-----
  6. 发我邮箱1307044qq,-----
  7. 真的真的不错-----
  8. 我的QQ5774890-----
  9. 祝福你们,记得来浙江,我接待你们-----
复制代码
想得到的结果:
  1. 发我邮箱1307044qq,-----
  2. 我的QQ5774890-----
复制代码

本帖最后由 3518228042 于 2017-9-9 21:38 编辑

这个是替换,提示不是有300楼?有可能无聊的发无限个数字英文和符号
  1. @set @n=0;/* & echo off
  2. dir /b *.txt|cscript -nologo -e:jscript "%~0" ""
  3. exit/b & rem */
  4. arg = WScript.Arguments(0);
  5. fso = new ActiveXObject("Scripting.FileSystemObject");
  6. while (!WSH.StdIn.AtEndOfStream) {
  7.     f = WSH.StdIn.ReadLine();
  8.     txt = fso.OpenTextFile(f,1).ReadAll()
  9.     .replace(/[\u4E00-\u9FA5][\d]{1,4}[\u4E00-\u9FA5][^\d]{5,}\r\n/g,"")
  10.     .replace(/(?:^|\r?\n)+([^a-z\d]+)[\r\n]+/img,"\r\n");
  11.     fso.OpenTextFile(f,2).Write(txt);
  12. }
复制代码
这个提取看看,不能完全确认所需
  1. //&cls&(type *.txt|cscript -nologo -e:jscript "%~0") 2>nul>>"批量提取%.log"&pause&exit
  2. WSH.echo(WScript.StdIn.ReadAll().replace(/[\u4E00-\u9FA5][\d]{1,4}[\u4E00-\u9FA5][^\d]{5,}\r\n/g,"").match(/.*(QQ|微信|邮箱)?.*(.+@)?([a-z\d+\.]+).*/ig).join('\r\n'))
复制代码

TOP

  1. findstr "[0123456789]" abc.txt
复制代码

TOP

回复 3# slore


上次访问: 2012-1-20 15:11
最后发表: 昨天 20:12

难得…… 可以加下qq吗。1091993445

TOP

回复 4# 523066680
哈哈,其实老人家都还在,应该是刚找到密码吧。

TOP

回复 3# slore


     这个简答明了,棒!

就是楼上所说,有些是遇到顶上300楼,200楼的

能否过滤掉5位纯数字以下的内容

TOP

回复 6# Rasm
  1. findstr "[0123456789][0123456789][0123456789][0123456789][0123456789]" abc.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# 3518228042


    findstr "[0123456789]" abc.txt

这段代码简单明了,就是要再加一段 过滤掉5位以后纯数字的方法,就更好了

不知道怎么写

TOP

回复 7# Batcher


    老大,这段无效果啊

TOP

回复 9# Rasm


可能是我们的测试环境不一样

D:\Test>type abc.txt
顶到300楼 太棒-----
不得不顶啊!-----
很好啊,-----
很牛逼啊~~~~~~~~~-----
好精彩,非常的喜欢,楼主再继续发!-----
发我邮箱1307044qq,-----
真的真的不错-----
我的QQ5774890-----
祝福你们,记得来浙江,我接待你们-----

D:\Test>findstr "[0123456789][0123456789][0123456789][0123456789][0123456789]" abc.txt
发我邮箱1307044qq,-----
我的QQ5774890-----
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. 顶到300楼 太棒-----
  2. 不得不顶啊!-----
  3. 很好啊,-----
  4. 很牛逼啊~~~~~~~~~-----
  5. 好精彩,非常的喜欢,楼主再继续发!-----
  6. 发我邮箱1307044qq,-----
  7. 真的真的不错-----
  8. 我的QQ5774890-----
  9. 祝福你们,记得来浙江,我接待你们-----
  10. 我的邮箱mayun1xxx@163.com
  11. mayun10xxx@163.com
  12. mayun100xxx@163.com哦
复制代码
  1. @CD /D "%~dp0"
  2. @findstr /i "[a-z0-9]*[@a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9]" 文本.txt >取出内容.txt
  3. @pause
复制代码

TOP

回复 4# 523066680


    密码倒是没忘,不过批处理毕竟还是语法和功能有限,用其他语言很容易就没用批处理了,选择合适的东西代码,可以多种混到一起能解决问题,自己省事挺好的.
所以慢慢的也没再上论坛了.批处理,for,set加变量延时搞清楚了就没啥学习了.

无意间搜索个东西,有批处理之家的链接,就登陆看看了.

TOP

返回列表