Board logo

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

作者: pcisong    时间: 2023-2-14 18:24     标题: 求助批处理对比2个txt文件,提取不同的数据另存。

请求支援,今天遇到一个问题,文件格式txt,原始数据315万行,数据处理后296万行,现发现少了1万行,需要找出剩下的19万行。

请求代码:对比2个txt文件,不同的数据提取出来另存。
作者: hfxiang    时间: 2023-2-14 19:35

是不是求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
复制代码

作者: 1073    时间: 2023-2-14 20:19

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 是保存不同数据的结果文件。
作者: 23618342    时间: 2023-2-15 09:04

gpt yyds,哈哈哈
作者: Batcher    时间: 2023-2-15 11:29

回复 3# 1073


    这个命令的结果很大的可能性是错误的,给findstr命令加上/x参数更靠谱。
作者: 881966    时间: 2023-2-15 18:21

要是比较的文本带有特殊字符怎么处理?
作者: terse    时间: 2023-2-15 19:21

powershell
  1. $array1 = [IO.File]::ReadAllLines('a.txt')
  2. $array2 = [IO.File]::ReadAllLines('b.txt')
  3. (Compare $array1 $array2  ).InputObject | Out-File "c.txt"
复制代码





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