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

[文本处理] [已解决]请教高手如何去除文本内完全相同的两行只保留一对不重复的附示例文本!

本帖最后由 fhcmail 于 2012-12-15 22:16 编辑

请教高手如何去除文本内完全相同的两行只保留一对不重复的附示例文本!
对偶来说太有挑战了,暂时搞不定,还请高手出招!
请注意,每两行为一对,文本内有大量这样的重复对出现,现在要清除所有重复的对只保留一堆,回车只要一个,不要清完后留了一堆回车的空行哟!!
示例文本如下:
  1. 不好笑
  2. [cqname]那你笑什么
  3. 关不了
  4. [cqname]没事的,不用关它拉~
  5. [cqname]叹什么气啊
  6. 我在说[cqname]呢
  7. 蒽~不要嘛~不要欺负[cqname]拉~
  8. 敢不敢6个点
  9. ......
  10. ......
  11. 好吧![name] 算你狠~
  12. 词库
  13. 没事的~[cqname]的词库大家会帮忙一起完善.
  14. 必须
  15. [bq106]我不知道拉~什么都不知道.
  16. 贱人
  17. 贱人者!人自贱~[cqname]是无辜滴~
  18. 干嘛叫[cqname]滚~我不要嘛.
  19. ["face",87]
  20. 敲死一切欺负[cqname]的~
  21. 你是谁
  22. 我是[cqname],请多多指教![enter]
  23. 不好笑
  24. [cqname]那你笑什么
  25. 关不了
  26. [cqname]没事的,不用关它拉~
  27. [cqname]叹什么气啊
  28. 我在说小蜜呢
  29. 蒽~不要嘛~不要欺负[cqname]拉~
  30. 敢不敢6个点
  31. ......
  32. ......
  33. 好吧![name]算你狠~
  34. 词库
  35. 没事的~[cqname]的词库大家会帮忙一起完善.
  36. 必须
  37. [bq106]我不知道拉~什么都不知道.
  38. 贱人
  39. 贱人者!人自贱~[cqname]是无辜滴~
  40. 干嘛叫[cqname]滚~我不要嘛.
  41. ["face",87]
  42. 敲死一切欺负[cqname]的~
  43. 就是要勾引你
  44. 不要嘛~[cqname]不需要勾引滴~[cqname]一定乖乖的听你的
复制代码
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 fhcmail 于 2012-12-15 22:15 编辑

下面是解决办法,再次感谢batman老大的帮忙!

【批处理未处理特殊字符版】用这个处理时文本内不能有特殊字符哟,希望以后有大牛能搞个处理字符的:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "_1=str"&set "_2=var"
  3. (for /f "delims=" %%a in (a.txt) do (
  4.   set /a n+=1
  5.   for %%b in (!n!) do set "!_%%b!=%%a"
  6.   if !n! equ 2 (
  7.     if not defined !str!!var! (
  8.       echo !str!&echo !var!&echo,
  9.        set "!str!!var!=a"
  10.      )
  11.      set /a n=0
  12.    )
  13. ))>b.txt
复制代码
【VBS版,完美处理特殊字符,实测超级给力】
  1. Dim FSO, vbStr, Arr, Str, Counter, vbVar
  2. vbVar = ""
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. vbStr = FSO.OpenTextFile("test.txt").ReadAll
  5. Arr = Split(vbStr, vbCrLf & vbCrLf)
  6. For Each Str In Arr
  7.   If InStr(vbVar, Str) = 0 Then vbVar = vbVar & Str & vbCrLf & vbCrLf   
  8. Next
  9. FSO.OpenTextFile("testb.txt", 2, True).Write vbVar
  10. CreateObject("Wscript.Shell").run "cmd /cstart testb.txt", True, False
  11. Set FSO = Nothing
复制代码

TOP

返回列表