返回列表 发帖

[文本处理] [已解决]求助批处理相同行删除,不同行只保留一个

本帖最后由 jrx401 于 2019-10-22 11:30 编辑

详细如下;
a.txt内容;
11111
11111
11112
A1111
11111
CCCCC
11111

a.txt处理后;
11111
11112
A1111
CCCCC

如下code是可以处理,但是A.txt里面有几千行时,就非常耗时。
可否有快速处理的方法呢?

使用的code;
  1. setlocal enabledelayedexpansion
  2. set n=0
  3.   for /f %%a in (A.txt) do (
  4.     set /a n=!n!+1
  5.     set m=0
  6.     set write=1
  7.     for /f %%b in (A.txt) do (
  8.       set /a m=!m!+1
  9.       if !m! lss !n! (
  10.         if %%a == %%b ( set write=0 )
  11.     )
  12.   )
  13.   if !write! equ 1 echo %%a >> result.txt
  14. )
复制代码
感谢各位大虾
1

评分人数

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

回复 2# ivor


    感谢大侠回复。
     使用Powershell 就无法把bat 转成exe档。
     可否有好的方法转档成exe呢?

     衷心感谢

TOP

回复 3# Batcher


    感谢大侠回复。
    不是很会用,使用gewk后的bat 可否也可以转成 exe呢?

    衷心感谢

TOP

感谢两位回复。
一直想办法使用bat来写看看,
发现改成如下,就变得比较快了
   for /f "tokens=1,2 delims= " %%c in (A.txt) do (   
    findstr /c:"%%c" B.txt>nul||echo %%c>>B.txt
   )
pause

TOP

回复 7# Batcher


    感谢大虾。
    比我的快 5s 。
    四千行的数据
    万分感激

TOP

回复 8# terse


      高手!!!
     秒杀[四千行,1s 结束]
     不是很理解,为什么可以这样快。
      万分感激

TOP

返回列表