【发布时间】:2013-05-07 13:23:39
【问题描述】:
下面的脚本提供了 token#1 字段每次出现的输出,但我需要再添加两个条件。
一个。应提供输出。即只有当它超过一个时,因为我在一个文件中有数百万条记录
b.如果有多个字符串。即一行中的关键字段组合需要检查文件中所有行的重复项。
@ECHO OFF
SETLOCAL enabledelayedexpansion
FOR %%c IN ($ #) DO FOR /f "delims==" %%i IN ('set %%c 2^>nul') DO
"SET %%i="
SET /a count=0
FOR /f "tokens=1delims=|" %%i IN (fscif.txt) DO (
SET /a count+=1
IF DEFINED $%%i (SET "$%%i=!$%%i! & !count!") ELSE (SET "$%%i=!count!")
SET /a #%%i+=1 )
FOR /f "tokens=1*delims=$=" %%i IN ('set $ 2^>nul') DO ( ECHO %%i;!#%%i! times;line no %%j
)
例如: 原始文件(考虑到令牌 1 和 3 是关键字段)
123|12|杰克
124|23|约翰
123|14|杰克
125|15|山姆
125|66|山姆
125|66|山姆
输出文件:
123|Jack;2 次;第 1 行和第 3 行
125|Sam;3 次;第 4 & 5 & 6 行
【问题讨论】:
-
批处理无法处理“百万条记录”。将您的记录放入 SQL 数据库中。
-
我不明白为什么不这样做。这可能需要一段时间,如果有人能想到解决环境问题的方法,一个简单的批处理程序可能就可以了。
标签: string batch-file many-to-many duplicates