- 论坛徽章:
- 0
|
1.txt
aa
bb
cc
dd
11
22
2.txt
aa 99
bb 88
cc 77
dd 66
rr 11
tt 22
ff 33
...
数量很多
现在想找到1.txt中所有字符的对应,得到如下结果
aa 99
bb 88
cc 77
dd 66
11 rr
22 tt
...
[code]#!/usr/bin/perl -w
use strict;
my $a="2.txt";
my $b="1.txt";
open IN1, $a or die "can't open $a";
open IN2, $b or die "can't open $b";
open OUT, '>', "out.txt" or die "can't open out.txt";
my @data = <IN1>;
sub func
{
my ($str, @arr) = @_;
for (my $i=0; $i<=$#arr; ++$i)
{
chomp($arr[$i]);
if ($str eq $arr[$i])
{
return 1;
}
}
return 0;
}
my @names = <IN2>;
foreach my $i (0..$#data){
my @line2 = split(/\s+/,$data[$i]);
my $name2 = shift @line2;
if (func($name2, @names))
{
print OUT $data[$i];
}
}
close IN1;
close IN2;
close OUT;[code]
结果里面没有
11 rr
22 tt
...
|
|