标题: [文本处理] 批处理如何批量删除纯文字的那行那行? [打印本页]
作者: Rasm 时间: 2017-9-9 16:16 标题: 批处理如何批量删除纯文字的那行那行?
小弟最近遇到一个项目,需要把全中文字符存在的那行全部删除到,
考虑到数据比较多【10多万条】,所以想用批处理尝试下
目的就是想获取到每行里面的联系方式,要获取内容那行肯定存在数字,有些是微信,就是字母+数字
如果全部是中文的话,那行肯定就不存在联系方式了,可删除。
正文内容如下:- 顶到300楼 太棒-----
- 不得不顶啊!-----
- 很好啊,-----
- 很牛逼啊~~~~~~~~~-----
- 好精彩,非常的喜欢,楼主再继续发!-----
- 发我邮箱1307044qq,-----
- 真的真的不错-----
- 我的QQ5774890-----
- 祝福你们,记得来浙江,我接待你们-----
复制代码
想得到的结果:- 发我邮箱1307044qq,-----
- 我的QQ5774890-----
复制代码
作者: 3518228042 时间: 2017-9-9 19:25
本帖最后由 3518228042 于 2017-9-9 21:38 编辑
这个是替换,提示不是有300楼?有可能无聊的发无限个数字英文和符号- @set @n=0;/* & echo off
- dir /b *.txt|cscript -nologo -e:jscript "%~0" ""
- exit/b & rem */
- arg = WScript.Arguments(0);
- fso = new ActiveXObject("Scripting.FileSystemObject");
- while (!WSH.StdIn.AtEndOfStream) {
- f = WSH.StdIn.ReadLine();
- txt = fso.OpenTextFile(f,1).ReadAll()
- .replace(/[\u4E00-\u9FA5][\d]{1,4}[\u4E00-\u9FA5][^\d]{5,}\r\n/g,"")
- .replace(/(?:^|\r?\n)+([^a-z\d]+)[\r\n]+/img,"\r\n");
- fso.OpenTextFile(f,2).Write(txt);
- }
复制代码
这个提取看看,不能完全确认所需- //&cls&(type *.txt|cscript -nologo -e:jscript "%~0") 2>nul>>"批量提取%.log"&pause&exit
- 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'))
复制代码
作者: slore 时间: 2017-9-9 20:12
- findstr "[0123456789]" abc.txt
复制代码
作者: 523066680 时间: 2017-9-10 19:24
回复 3# slore
上次访问: 2012-1-20 15:11
最后发表: 昨天 20:12
难得…… 可以加下qq吗。1091993445
作者: happy886rr 时间: 2017-9-10 20:07
回复 4# 523066680
哈哈,其实老人家都还在,应该是刚找到密码吧。
作者: Rasm 时间: 2017-9-11 22:07
回复 3# slore
这个简答明了,棒!
就是楼上所说,有些是遇到顶上300楼,200楼的
能否过滤掉5位纯数字以下的内容
作者: Batcher 时间: 2017-9-11 22:11
回复 6# Rasm - findstr "[0123456789][0123456789][0123456789][0123456789][0123456789]" abc.txt
复制代码
作者: Rasm 时间: 2017-9-11 22:11
回复 2# 3518228042
findstr "[0123456789]" abc.txt
这段代码简单明了,就是要再加一段 过滤掉5位以后纯数字的方法,就更好了
不知道怎么写
作者: Rasm 时间: 2017-9-11 22:17
回复 7# Batcher
老大,这段无效果啊
作者: Batcher 时间: 2017-9-11 22:55
回复 9# Rasm
可能是我们的测试环境不一样
D:\Test>type abc.txt
顶到300楼 太棒-----
不得不顶啊!-----
很好啊,-----
很牛逼啊~~~~~~~~~-----
好精彩,非常的喜欢,楼主再继续发!-----
发我邮箱1307044qq,-----
真的真的不错-----
我的QQ5774890-----
祝福你们,记得来浙江,我接待你们-----
D:\Test>findstr "[0123456789][0123456789][0123456789][0123456789][0123456789]" abc.txt
发我邮箱1307044qq,-----
我的QQ5774890-----
作者: 3518228042 时间: 2017-9-12 06:47
- 顶到300楼 太棒-----
- 不得不顶啊!-----
- 很好啊,-----
- 很牛逼啊~~~~~~~~~-----
- 好精彩,非常的喜欢,楼主再继续发!-----
- 发我邮箱1307044qq,-----
- 真的真的不错-----
- 我的QQ5774890-----
- 祝福你们,记得来浙江,我接待你们-----
- 我的邮箱mayun1xxx@163.com
- mayun10xxx@163.com
- mayun100xxx@163.com哦
复制代码
- @CD /D "%~dp0"
- @findstr /i "[a-z0-9]*[@a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9]" 文本.txt >取出内容.txt
- @pause
复制代码
作者: slore 时间: 2017-9-12 18:42
回复 4# 523066680
密码倒是没忘,不过批处理毕竟还是语法和功能有限,用其他语言很容易就没用批处理了,选择合适的东西代码,可以多种混到一起能解决问题,自己省事挺好的.
所以慢慢的也没再上论坛了.批处理,for,set加变量延时搞清楚了就没啥学习了.
无意间搜索个东西,有批处理之家的链接,就登陆看看了.
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |