[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何去重多个文件呢

  1. @echo off
  2. set /p=<nul>2.txt
  3. rem创建2.txt
  4. for /f "delims=" %%i in (1.txt) do (
  5. rem读取1.txt,一次读一行
  6. findstr "%%i" "2.txt">nul||echo %%i>>2.txt
  7. rem第一次循环时,在2.txt中找1.txt的第一行,不存在就把1.txt的第一行输入2.txt
  8. rem第二次循环时,在2.txt中找1.txt的第二行,不存在就把1.txt的第一行输入2.txt
  9. rem以此类推
  10. rem那两条竖杠是主要的,作用是左边执行成功就不执行右边,左边没执行成功就执行右边
  11. )
  12. pause
复制代码
上面是单文件去重的,同时去重文件夹下的所有txt文件改如何写呢

DoubleKiller

TOP

三方工具版块下载:gawk.exe
  1. gawk "{if(!a[$0]){print $0;a[$0]++}}" 2.txt 1.txt
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

没有重复的?

TOP

本帖最后由 newswan 于 2021-5-21 23:37 编辑

多文件去重,意思是
1、每个文件没有重复的
2、所有文件没有重复的

单文件用 gnu 命令
sort 1.txt | uniq > _1.txt

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表