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

[文本处理] 求助批处理对比2个txt文件,提取不同的数据另存。

[复制链接]
发表于 2023-2-14 18:24:29 | 显示全部楼层 |阅读模式
请求支援,今天遇到一个问题,文件格式txt,原始数据315万行,数据处理后296万行,现发现少了1万行,需要找出剩下的19万行。

请求代码:对比2个txt文件,不同的数据提取出来另存。
发表于 2023-2-14 19:35:41 | 显示全部楼层
是不是求File1.txt与File2.txt的差集?试试如下gawk(http://bcn.bathome.net/tool/4.1.3/gawk.exe)脚本

  1. gawk "NR==FNR{a[$0]=1;next}!a[$0]++{print $0;a[$0]++}END{for(i in a)if(a[i]==1)print i}" File1.txt File2.txt>File3.txt
复制代码
发表于 2023-2-14 20:19:14 | 显示全部楼层
From ChatGPT:
  1. @echo off

  2. findstr /v /g:file1.txt file2.txt > result.txt

  3. echo Differences saved to result.txt.
复制代码
上面的代码假设 file1.txt 是要进行比较的第一个文件,file2.txt 是要进行比较的第二个文件,result.txt 是保存不同数据的结果文件。
发表于 2023-2-15 09:04:38 | 显示全部楼层
gpt yyds,哈哈哈
发表于 2023-2-15 11:29:10 | 显示全部楼层
回复 3# 1073


    这个命令的结果很大的可能性是错误的,给findstr命令加上/x参数更靠谱。
发表于 2023-2-15 18:21:34 | 显示全部楼层
要是比较的文本带有特殊字符怎么处理?
发表于 2023-2-15 19:21:22 | 显示全部楼层
powershell
  1. $array1 = [IO.File]::ReadAllLines('a.txt')
  2. $array2 = [IO.File]::ReadAllLines('b.txt')
  3. (Compare $array1 $array2  ).InputObject | Out-File "c.txt"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:21 , Processed in 0.017924 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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