Board logo

标题: [文本处理] 批处理如何删除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 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0"<"1.txt"&pause&exit
  2. var n=5;
  3. var c='-';  //指定分隔符
  4. var txt = WSH.StdIn.ReadAll().split(/\r\n/), a={}, b={}, s='';
  5. for(var i=0;i<txt.length; i++){
  6.     var str = txt[i].split(c)[0];
  7.     a[str]?a[str]++:a[str]=1;
  8.     b[str]?b[str]+=txt[i]+'\r\n':b[str]=txt[i]+'\r\n';
  9. }
  10. for(var i in a){if(a[i] < n)s+=b[i];}
  11. //(new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile('结果.txt', 2, true).Write(s);
  12. WSH.echo(s);
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2