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

[文本处理] 批处理如何删除txt中每行行首/开头指定字符前的字符串重复出现超过指定次数的行?

[复制链接]
发表于 2016-7-7 22:17:53 | 显示全部楼层 |阅读模式
本帖最后由 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次以上的,就全部删掉,不知道该怎么写批处理

评分

参与人数 1PB -30 收起 理由
pcl_test -30 未按版规发帖

查看全部评分

发表于 2016-7-7 22:36:53 | 显示全部楼层
发表于 2016-7-8 22:07:27 | 显示全部楼层
本帖最后由 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);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:29 , Processed in 0.019945 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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