读书人

哪位高手有现成的字符串查找perl或者p

发布时间: 2012-02-26 20:19:44 作者: rapoo

谁有现成的字符串查找perl或者pyron程序:file A有一些数据列表,在file B中查找file A中存在的数据,并把相应的行打印出
自己不太懂。刚学。请师傅们如果有。请给我一个。

[解决办法]
伪代码如下
pseudo code
{{{
#!python
keydict = set()
for line in file a:
keydict.add(line)

for line in file b:
if line.find(any key in keydict):
print line

}}}
[解决办法]
怎么没缩进:

use strict;

open (A, 'a.txt') or die "open error: $!";
open (B, 'b.txt') or die "open error: $!";

my %data;
while (<A>) {
chomp;
$data{$_} = 1;
}
while (<B>) {
chomp;
if ($data{$_}) {
print "$_\n";
}
}

[解决办法]
晕,这个是笔误。

#!/usr/bin/perl
open F1,"a.txt";
%a = map {chomp;$_=>1} <F1>;

open F2,"b.txt";
%b = map {chomp;$_=>1} <F2>;

for (keys %a, kyes %b) { $union{$_}++ && $isect{$_}++ };
@union = keys %union; #并集
@isect = keys %isect; #交集

close F1;
close F2

[解决办法]
为什么不用grep呢?grep专为对比列表用的。

> >a.txt
1
2
3
4
5

> >b.txt
1
3
4
5
7
9

use strict;

open (A, 'a.txt ') or die "open error: $!";
open (B, 'b.txt ') or die "open error: $!";
while ( <A >) {
chomp;
$data{$_} = 1;
}

my @b=<B>;
my @same = grep( $data{$_},@b );

print @same;

读书人网 >perl python

热点推荐