找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23166|回复: 11

[文本处理] 批处理,比较两个文件并将差异写入另一个文件?

[复制链接]
发表于 2022-9-23 09:30:24 | 显示全部楼层 |阅读模式
我有两个文件里面有很多重复的内容
File1.txt
1111,1111
2222,2222
3333,3333
......
File2.txt
1111,1111
2222,2222
3333,3333
4444,4444
......
两个txt有很多重复的
我想要一个只有差异的输出文件:
File3.txt
4444,4444
.....

批处理的话该怎么写,查资料 论坛的方法都试过了 都不好使
输出的新txt是空白的
发表于 2022-9-23 10:35:19 | 显示全部楼层
发表于 2022-9-23 11:41:17 | 显示全部楼层
  1. findstr /xvg:File1.txt File2.txt>File3.txt
  2. findstr /xvg:File2.txt File1.txt>>File3.txt
复制代码
 楼主| 发表于 2022-9-23 12:17:36 | 显示全部楼层
回复 3# qixiaobin0715


  这个我试过了 不行
发表于 2022-9-23 12:20:58 | 显示全部楼层
你把测试文件发到网盘上,让大家帮你测试,看看是哪里的问题。
 楼主| 发表于 2022-9-23 12:21:42 | 显示全部楼层
回复 2# aloha20200628


    我是1.txt里有差不多2000行重复的  去除重复以后生成2.txt 我现在是想比较这两个txt 把剔除去的行生成到3.txt里
 楼主| 发表于 2022-9-23 12:22:04 | 显示全部楼层
回复 5# qixiaobin0715


   
    我是1.txt里有差不多2000行重复的  去除重复以后生成2.txt 我现在是想比较这两个txt 把剔除去的行生成到3.txt里
 楼主| 发表于 2022-9-23 12:26:35 | 显示全部楼层
比如1.txt里是
111,111
aaa,aaa
222,222
bbb,bbb
333,333
ccc,ccc
444,444
aaa,aaa
111,111
ddd,ddd
555,555
222,222
去重复后得到2.txt
111,111
aaa,aaa
222,222
bbb,bbb
333,333
ccc,ccc
444,444
ddd,ddd
555,555
然后我想比较1.txt和2.txt剔除去的 生成一个3.txt
aaa,aaa
111,111
222,222
 楼主| 发表于 2022-9-23 12:27:22 | 显示全部楼层
回复 5# qixiaobin0715


    比如1.txt里是
111,111
aaa,aaa
222,222
bbb,bbb
333,333
ccc,ccc
444,444
aaa,aaa
111,111
ddd,ddd
555,555
222,222
去重复后得到2.txt
111,111
aaa,aaa
222,222
bbb,bbb
333,333
ccc,ccc
444,444
ddd,ddd
555,555
然后我想比较1.txt和2.txt剔除去的 生成一个3.txt
aaa,aaa
111,111
222,222
发表于 2022-9-23 13:22:42 | 显示全部楼层
回复 4# Esccc
那是你在顶楼表达错误。如果对顺序没有特别要求的话,去重和统计重复行可以在一个批处理里解决:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('type 1.txt^|sort') do (
  4.     if not "!str!"=="%%a" (
  5.         echo,%%a>>2.txt
  6.         set n=1
  7.     ) else (
  8.         if !n! equ 1 echo,%%a>>3.txt
  9.         set n=0
  10.     )
  11.     set str=%%a
  12. )
  13. pause
复制代码
因为你没在网盘或别的地方提供测试样本,上面代码未经测试。

评分

参与人数 1技术 +1 收起 理由
Esccc + 1 太对了

查看全部评分

 楼主| 发表于 2022-9-23 13:28:14 | 显示全部楼层
回复 10# qixiaobin0715


   对对对 太对了  就是这个  栓Q 非常感谢
发表于 2022-9-23 13:41:31 | 显示全部楼层
本帖最后由 hfxiang 于 2022-9-23 13:42 编辑

回复 8# Esccc


   
建议用第3方工具gawk ( http://bcn.bathome.net/tool/4.1.0/gawk.exe ),简单可行

  1. gawk "x[$0]++" 1.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:44 , Processed in 0.024714 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表