标题: [文本处理] 批处理如何去重多个文件呢 [打印本页]
作者: 014131 时间: 2021-5-21 22:05 标题: 批处理如何去重多个文件呢
- @echo off
- set /p=<nul>2.txt
- rem创建2.txt
- for /f "delims=" %%i in (1.txt) do (
- rem读取1.txt,一次读一行
- findstr "%%i" "2.txt">nul||echo %%i>>2.txt
- rem第一次循环时,在2.txt中找1.txt的第一行,不存在就把1.txt的第一行输入2.txt
- rem第二次循环时,在2.txt中找1.txt的第二行,不存在就把1.txt的第一行输入2.txt
- rem以此类推
- rem那两条竖杠是主要的,作用是左边执行成功就不执行右边,左边没执行成功就执行右边
- )
- pause
复制代码
上面是单文件去重的,同时去重文件夹下的所有txt文件改如何写呢
作者: Batcher 时间: 2021-5-21 22:50
回复 1# 014131
单文件去重用这个方法效率有点低,可以参考其他不同的写法:
http://bbs.bathome.net/thread-5219-1-1.html
http://bbs.bathome.net/thread-5509-1-1.html
http://bbs.bathome.net/thread-4690-1-1.html
http://bbs.bathome.net/thread-5326-1-1.html
http://bbs.bathome.net/thread-4896-1-1.html
作者: newswan 时间: 2021-5-21 23:35
本帖最后由 newswan 于 2021-5-21 23:37 编辑
多文件去重,意思是
1、每个文件没有重复的
2、所有文件没有重复的
?
单文件用 gnu 命令
sort 1.txt | uniq > _1.txt
作者: 1152 时间: 2021-5-22 13:29
没有重复的?
作者: cutebe 时间: 2021-5-22 22:19
三方工具版块下载:gawk.exe- gawk "{if(!a[$0]){print $0;a[$0]++}}" 2.txt 1.txt
复制代码
作者: zag0699 时间: 2021-5-27 10:34
DoubleKiller
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |