谁有现成的字符串查找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;