批处理实现过滤重复行
a.txt内容如下:
123
456
789
123
123
789
获取重复的行,并且重复的行只保留一次,处理后得到b.txt内容如下:
123
789
方法1:
@echooff
REM缺点1:无法处理特别大的文件
REM缺点2:需要使用文件中没有出现的字符来标记变量(本例中使用的是下划线)
setlocal
for/f"delims="%%iin(a.txt)do(
set/a_%%i+=1
)
(for/f"tokens=1-2delims=_="%%iin('set_')do(
if%%jgtr1(
echo,%%i
)
))>b.txt
endlocal
方法2:
@echooff
setlocalenabledelayedexpansion
set"PriLine="
set"DupNum=1"
(for/f"delims="%%iin('sorta.txt')do(
if"!PriLine!"equ"%%i"(
set/aDupNum+=1
)else(
if!DupNum!gtr1(
echo,!PriLine!
)
setDupNum=1
)
set"PriLine=%%i"
))>b.txt
if!DupNum!gtr1(
>>b.txtecho,!PriLine!
)
方法3:
gawk"{a[$0]++}END{for(iina)if(a[i]>1)printi}"a.txt>b.txt
方法4:(更加简洁)
gawk"a[$0]++"a.txt>b.txt
方法5:
@echooff
for/f"tokens=*"%%iin(a.txt)doset#%%i=%%i
(for/f"tokens=2delims=="%%iin('set#')doecho%%i)>b.txt热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下