我想用批处理实现滤除文本中的重复行,使每行文本都是唯一的。
例如:
1.txt——源文件
1
1
1
2
2
3
4
5
5
5
6
6
7
7
8
8
9
0
2.txt——目标文件
1
2
3
4
5
6
7
8
9
0
首先是用for命令
for /f %a in (1.txt) do …… >>2.txt
接着用if和find配合实现
我的想法是用if命令判断find /c "%a" 2.txt的返回结果,以确认for命令读取的当前行是否已在2.txt文件中出现过,也就是说该行是重复行,但是if命令不大熟悉,如何用if和其它命令搭配实现判断,想借这一实例来学习不死一下。
同时问一下,它能够处理比较复杂的文本行吗,比如网址之类的。(其实,我本来就是想用它来处理文本中重复的网址的)。
使用find /c "1" 1.txt命令的返回结果
---------- 1.TXT: 3
注意1.txt及3前面的空字符,它们不是空格,用UE查看像是“_”下划线,我想是哪个控制字符吧,因此不能使用for /f “delims=1,2,3”的命令,该怎么办以及为什么用控制字符呢?
例如:
1.txt——源文件
1
1
1
2
2
3
4
5
5
5
6
6
7
7
8
8
9
0
2.txt——目标文件
1
2
3
4
5
6
7
8
9
0
首先是用for命令
for /f %a in (1.txt) do …… >>2.txt
接着用if和find配合实现
我的想法是用if命令判断find /c "%a" 2.txt的返回结果,以确认for命令读取的当前行是否已在2.txt文件中出现过,也就是说该行是重复行,但是if命令不大熟悉,如何用if和其它命令搭配实现判断,想借这一实例来学习不死一下。
同时问一下,它能够处理比较复杂的文本行吗,比如网址之类的。(其实,我本来就是想用它来处理文本中重复的网址的)。
使用find /c "1" 1.txt命令的返回结果
---------- 1.TXT: 3
注意1.txt及3前面的空字符,它们不是空格,用UE查看像是“_”下划线,我想是哪个控制字符吧,因此不能使用for /f “delims=1,2,3”的命令,该怎么办以及为什么用控制字符呢?
