用perl比较两个大文件

用perl比较两个大文件,第1张

open A, "A.txt" or die "Can't open A"

my @data = <A>

close A

my %hash

++$hash{$_} foreach @data

open B, "B.txt" or die "Can't open B"

open C, ">A无B有.txt" or die "Can't open Output A无B有"# 请改成英文档名

while ( <B> ) {

    if ( $hash{$_} ) { delete $hash{$_} next }  # AB 都有, 拿掉

    print C $_ # A无B有

    delete $hash{$_}  # 最後剩下来的就是 A 有 B 无    

}

close C close B

open D, ">A有B无.txt" or die "Can't open Output A有B无" # 请改成英文档名

print D $_ while ( sort keys %hash ) 

close D

ps. "非常非常大" 是没有意义的描述, 有多大最好直接说有几个 GB.

open $A, 'A.txt'

open $B, 'B.txt'

while ($m = <$A>) {

$n = <$B>

chomp $m

chomp $n

print X($m,$n), "\n"

}

sub X{

my ($m, $n) = @_

my $r

for (0..length($n)) {

$r .= substr($m, $_, 1) eq substr($n, $_, 1)?'0':'1'

}

$r

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11997614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存