加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

快速获取两组数据的交集,并集,补集

发布时间:2020-12-15 23:54:46 所属栏目:大数据 来源:网络整理
导读:笔者常用这个脚本快速查看两组数据的交并补集。(注意:请保持每组数据是非冗余的)。 #!/usr/bin/perl -wuse strict;use File::Basename;die "#usage:perl $0 a.txtb.txtn" if @ARGV!=2;my ($p,$q)=@ARGV;open IN1,$p||die;open IN2,$q||die;chomp(my @p=I

笔者常用这个脚本快速查看两组数据的交并补集。(注意:请保持每组数据是非冗余的)。


#!/usr/bin/perl -w
use strict;
use File::Basename;
die "#usage:perl $0 <a.txt><b.txt>n" if @ARGV!=2;
my ($p,$q)=@ARGV;
open IN1,$p||die;
open IN2,$q||die;
chomp(my @p=<IN1>);
chomp(my @q=<IN2>);
close IN1;
close IN2;
my %p = map{$_,1} @p;
my %q = map{$_,1} @q;
my @inter = grep{$p{$_}} @q;
my %merge = map {$_,1} @p,@q;
my @merge = keys %merge;
my @q_u = grep {!$p{$_}} @merge;
my @p_u = grep {!$q{$_}} @merge;
my $p_name=basename$p;
my $q_name=basename$q;
open OUT1,">",$p_name.".uniq.txt";
print OUT1 "$_n" foreach sort{$a cmp $b}@p_u;
close OUT1;
open OUT2,$q_name.".uniq.txt";
print OUT2 "$_n" foreach sort{$a cmp $b}@q_u;
close OUT2;
open OUT3,"${p_name}_$q_name.inter.txt";
print OUT3 "$_n" foreach sort{$a cmp $b}@inter;
close OUT3;
open OUT4,"${p_name}_$q_name.merge.txt";
print OUT4 "$_n" foreach sort{$a cmp $b}@merge;
close OUT4;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读