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


    你好,是的,这个问题我没有考虑进去,大概的话,就是前面两行之中,如果是前面5个字都一样,那么就取其中一行的意思,基本在OCR识别后,最后几位会有问题,这样就差不多把相似的排除了,很干净其实也难,因为有可能好多行都有问题哈

TOP

大致相似的行在文本中位置是否相邻?

TOP

相似重复行,这个概念太模糊,应当设定一个标准。比如下面文本中那个是相似的呢:
  1. 1
  2. 12
  3. 123
  4. 1234
  5. 12345
  6. 123456
  7. 1234567
  8. 12345678
  9. 123456789
  10. 1234567890
复制代码

TOP

回复 6# xp3000


   好的谢谢大哥,我刚才测试了一下,运行代码没有反应,可以帮忙在你机子上试试不,前面那个软件我也去下载来试试,只要能解决就行哈

TOP

本帖最后由 xp3000 于 2022-1-18 18:19 编辑
  1. //&cls&dir /b *.txt|cscript -nologo -e:jscript "%~f0"&echo 文本连续行去重复,有4个以上连续字符串不同则保留,可以修改{3,}增加数量&pause&exit
  2. function reStr(file){
  3.     var f = fso.opentextfile(file, 1);
  4.     str = f.ReadAll().replace(/^(.{1,})(.{3,})(.{1,}\r?\n)(.{1,}\2.{1,}\r?\n)+/mg, '$1$2$3')
  5. .replace(/^(.{1,})(.{3,})(.{1,}\r?\n)(.{1,}\2.{1,}\r?\n)+/mg, '$1$2$3')
  6. .replace(/^(.{1,})(.{3,})(.{1,}\r?\n)(.{1,}\2.{1,}\r?\n)+/mg, '$1$2$3');
  7.     f.Close();
  8.     var f = fso.opentextfile(file, 2);
  9.     f.Write(str);
  10. }
  11. var fso = new ActiveXObject('Scripting.FileSystemObject');
  12. while(!WScript.StdIn.AtEndOfStream)reStr(WScript.StdIn.ReadLine());
复制代码
BAT和文本都ANSI编码,可以保存ANSI了

TOP

模糊识别是AI的话题之一,是当下Python的一道热菜,它有专门的一套工具库打理。LZ 不妨移步那些Py论坛试试...

TOP

抱歉!上款是精确去重...

TOP

试试这一个古老的纯P思路...
@echo off
(for /f "usebackq delims=" %%s in ("a.txt") do (find "%%s" "a.new.txt">nul || echo,%%s))>"a.new.txt"

TOP

grepWin这个人家就行,其他软件很多支持正则表达式的都可以
  1. ^(.{1,})(.{1,9}\r?\n)(\1.{1,9}\r?\n)+
复制代码
替换
  1. $1$2
复制代码

TOP

返回列表