作者giacch (小a)
看板Perl
标题Re: [问题] 档案字串比对
时间Sat Jun 5 20:49:44 2010
※ 引述《cp3cp3 (侵掠如火、不动如山)》之铭言:
: 若我有一个档案,是这样的资料格式
: AB EF CCA,XDE,PPC ACE,DDE
: AC DG ACE ACE,DDE,CCA
: DC AS CCA,XDE,PPC,FDS,JKL CCA,XDE,PPC,FDS
: 第一栏的物件对应到第三栏
: 第二栏的物件对应到第四栏
: 第三栏和第四栏内的物件个数是不固定的,但至少>=1
: 我想要利用第三栏和第四栏的资讯算出每一个record的交集和连集数目,
: 要如何写比较好?
: 谢谢!
#!/usr/bin/perl
printf("%-32s%-32s%-8s%-8s\n%s\n", 'A', 'B', 'A&B', 'A|B', '=' x 80);
while(<DATA>) {
($A, $B, $C, $D)=split;
map { $CHK{$_}++ } split(/,/, "$C,$D");
$AnB=grep { $CHK{$_} > 1 } keys %CHK;
$AoB=keys %CHK;
printf("%-32s%-32s%-8s%-8s\n", "$A:$C", "$B:$D", $AnB, $AoB);
undef %CHK;
}
__DATA__
AB EF CCA,XDE,PPC ACE,DDE
AC DG ACE ACE,DDE,CCA
DC AS CCA,XDE,PPC,FDS,JKL CCA,XDE,PPC,FDS
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.170.66
1F:→ giacch:是这个意思吧... 06/05 20:50
2F:→ cp3cp3:谢啦 06/07 01:17