下面的脚本提供了 token#1 字段每次出现的输出,但我需要再添加两个条件。
一个。应该提供输出。即只有当它超过一个时,因为我在一个文件中有数百万条记录
湾。如果有多个字符串。即一行中的关键字段组合需要检查文件中所有行的重复项。
@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|杰克;2 次;第 1 行和第 3 行
125|山姆;3 次;第 4 & 5 & 6 行