Board logo

标题: [文本处理] 用如何用BAT批处理文件对比筛除不同TXT文件带有固定符号重复内容的行? [打印本页]

作者: beiwe    时间: 2020-7-7 12:02     标题: 用如何用BAT批处理文件对比筛除不同TXT文件带有固定符号重复内容的行?

现在有A.txt和B.txt ,这2个TXT文件

A.txt为主文件,(比如内有1万行文本),文本内容每行例如 193abc123
B.txt为需要进行筛选的文本(比如内有3000行文本), 文本内容格式每行例如 193abc123:10ab

A和B文本最大的区别就是格式 , B文本每行都带有 : 以及和后面的字符.
但是可以看到在 : 号之前的文本B和A是有重复的,所以在对比筛除的时候需要忽略掉 : 以及 : 号后面的字符来进行比对筛除。
最后生成一个 C.txt 文件作为筛除重复后的结果

现在已经有一个简单筛选批处理命令 findstr /v /G:A.txt B.txt >C.txt

但是运行大文件效率非常慢,一般需要运行的筛选文件都是几十万行,所以希望能得到大神的协助提供一个高效的执行批处理代码。
感激不尽



文本A.txt内容,作为参考母版 ,比如有10行
193abc123
7892aa193
ae9482991
daa92881a
f9893jagge
a93jageccs
9983aggi3a
093hjga398
aienga9222
9ao9comae


文本B.txt内容,格式和A相比就是多了:号以及后面的字符。
请用:号前面的字符作为对比对象,可以看到B文本共6行其中前3行和A文本内容有重复
193abc123:aabb
7892aa193:aa11
ae9482991:aaoo
afiang2901:bbbb
f9jg928877:uuaa
a83hccabc:hoho


最后输出这个C.txt文本,就是B没有和A发生重复的后面3行文本
afiang2901:bbbb
f9jg928877:uuaa
a83hccabc:hoho

[attach]12649[/attach]
作者: Batcher    时间: 2020-7-7 18:56

回复 1# beiwe


推荐试试 gawk.exe 效率如何:
  1. gawk -F":" "NR==FNR{a[$1]=$1}NR>FNR{if(!($1 in a))print}" "a.txt" "b.txt" > "c.txt"
复制代码
http://bcn.bathome.net/s/tool/index.html?key=gawk




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