标题: [文本处理] 批处理如何删除txt中每行行首/开头指定字符前的字符串重复出现超过指定次数的行? [打印本页]
作者: Rasm 时间: 2016-7-7 22:17 标题: 批处理如何删除txt中每行行首/开头指定字符前的字符串重复出现超过指定次数的行?
本帖最后由 pcl_test 于 2016-7-8 22:08 编辑
现在遇到一个文本,里面有重复的,行数各不同,想把多次出现的删掉。处理的内容如下:
111-ewqrewe
111-erqwrqew111
111-ffwefawe
111-fewfawef
222-efqawfa
222-eqfawf
333-fewafa
333-ewafqaw
333-wefqaf
333-ewfqfw
333-ewfqawf
=================
就是想把分隔符【-】前面的内容如果重复5次以上的,就全部删掉,不知道该怎么写批处理
作者: pcl_test 时间: 2016-7-7 22:36
嗯,你以前的贴
http://www.bathome.net/viewthread.php?tid=25488
作者: pcl_test 时间: 2016-7-8 22:07
本帖最后由 pcl_test 于 2016-7-9 01:36 编辑
- //&cls&cscript -nologo -e:jscript "%~f0"<"1.txt"&pause&exit
-
- var n=5;
- var c='-'; //指定分隔符
- var txt = WSH.StdIn.ReadAll().split(/\r\n/), a={}, b={}, s='';
- for(var i=0;i<txt.length; i++){
- var str = txt[i].split(c)[0];
- a[str]?a[str]++:a[str]=1;
- b[str]?b[str]+=txt[i]+'\r\n':b[str]=txt[i]+'\r\n';
- }
- for(var i in a){if(a[i] < n)s+=b[i];}
- //(new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile('结果.txt', 2, true).Write(s);
- WSH.echo(s);
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |