Board logo

标题: [文本处理] 批处理,比较两个文件并将差异写入另一个文件? [打印本页]

作者: Esccc    时间: 2022-9-23 09:30     标题: 批处理,比较两个文件并将差异写入另一个文件?

我有两个文件里面有很多重复的内容
File1.txt
1111,1111
2222,2222
3333,3333
......
File2.txt
1111,1111
2222,2222
3333,3333
4444,4444
......
两个txt有很多重复的
我想要一个只有差异的输出文件:
File3.txt
4444,4444
.....

批处理的话该怎么写,查资料 论坛的方法都试过了 都不好使
输出的新txt是空白的
作者: aloha20200628    时间: 2022-9-23 10:35

老帖有很多货色》http://bbs.bathome.net/thread-39822-1-1.html
作者: qixiaobin0715    时间: 2022-9-23 11:41

  1. findstr /xvg:File1.txt File2.txt>File3.txt
  2. findstr /xvg:File2.txt File1.txt>>File3.txt
复制代码

作者: Esccc    时间: 2022-9-23 12:17

回复 3# qixiaobin0715


  这个我试过了 不行
作者: qixiaobin0715    时间: 2022-9-23 12:20

你把测试文件发到网盘上,让大家帮你测试,看看是哪里的问题。
作者: Esccc    时间: 2022-9-23 12:21

回复 2# aloha20200628


    我是1.txt里有差不多2000行重复的  去除重复以后生成2.txt 我现在是想比较这两个txt 把剔除去的行生成到3.txt里
作者: Esccc    时间: 2022-9-23 12:22

回复 5# qixiaobin0715


   
    我是1.txt里有差不多2000行重复的  去除重复以后生成2.txt 我现在是想比较这两个txt 把剔除去的行生成到3.txt里
作者: Esccc    时间: 2022-9-23 12:26

比如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
作者: Esccc    时间: 2022-9-23 12:27

回复 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
作者: qixiaobin0715    时间: 2022-9-23 13:22

回复 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
复制代码
因为你没在网盘或别的地方提供测试样本,上面代码未经测试。
作者: Esccc    时间: 2022-9-23 13:28

回复 10# qixiaobin0715


   对对对 太对了  就是这个  栓Q 非常感谢
作者: hfxiang    时间: 2022-9-23 13:41

本帖最后由 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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2