处理6W行记录花了2分多钟,100W就不敢试了!大概要一个多小时吧!
源文件为:sour2.txt
处理结果为:temp3.txt
可完成两个要求。- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (sour2.txt) do (
- set/a n+=1
- set num=000000!n!
- echo !num:~-7!-%%a
- ))>temp.txt
- ::加入序号保持原来的顺序
-
- (for /f "tokens=1,2,3* delims=-" %%a in ('sort temp.txt /+8') do (
- if "%%b-%%c" neq "!var!" (echo %%a-%%b-%%c-%%d)
- set var=%%b-%%c
- ))>temp2.txt
- ::从第8位开始排序,即只按原来的数据排序,重复的丢弃
-
- (for /f "tokens=1,2,3* delims=-" %%a in ('sort temp2.txt') do (
- echo %%b----%%c----%%d
- ))>temp3.txt
- ::恢复原来的顺序,并丢弃加入的临时序号
复制代码 把楼主的数据存为sour.txt, 通过下面代码生成的sour2.txt具有6W行记录。-
- @echo off
- (for /f "delims=" %%a in (sour.txt) do (
- for /l %%b in (1,1,10000) do (echo %%a)
- ))>sour2.txt
复制代码
[ 本帖最后由 netbenton 于 2009-5-29 17:51 编辑 ] |