用perl 提取根据第一列名字提取第二列的数据,求可实现的程序
从文件:aalsaabdfjdcedish4dhe中根据第一列名字提取行如我要提取aace则输出(要提取的名字也在一个文件中)aalsacedish...
从文件:
aa lsa
ab dfjd
ce dish
4d he 中根据第一列名字提取行
如我要提取aa ce 则输出(要提取的名字也在一个文件中)
aa lsa
ce dish 展开
aa lsa
ab dfjd
ce dish
4d he 中根据第一列名字提取行
如我要提取aa ce 则输出(要提取的名字也在一个文件中)
aa lsa
ce dish 展开
4个回答
展开全部
简单,用哈希就行了
open(IN,$file);
while(<IN>){
chomp;
my $name=(split /\s+/,$_)[0];
$hash{$name}=$_;
}
close IN;
#####
假如你要某一行的内容,就print $hash{$name};###$name是某一列的名字
open(IN,$file);
while(<IN>){
chomp;
my $name=(split /\s+/,$_)[0];
$hash{$name}=$_;
}
close IN;
#####
假如你要某一行的内容,就print $hash{$name};###$name是某一列的名字
追问
我是有两个文件,一个是file1,存储:
aa lsa
ab dfjd
ce dish
一个file2,存储:
aa
ce
我具体应该怎么操作?
追答
open(FILE1,$file1);
while(){
chomp;
my $name=(split /\s+/,$_)[0];
$hash{$name}=$_;
}
close FILE1;
open(FILE2,$file2);
while(){
chomp;
print $hash{$_};
}
close FILE2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
open(IN,"file1");
open(NAME,"file2");
open(OUT,">result");
while(<IN>){
chomp;
@data=split / /,$_;
$hash{$data[0]}=$data[1];
}
while(<NAME>){
chomp;
print OUT "$_ $hash{$_}\n";
}
close IN;
close NAME;
close OUT;
open(NAME,"file2");
open(OUT,">result");
while(<IN>){
chomp;
@data=split / /,$_;
$hash{$data[0]}=$data[1];
}
while(<NAME>){
chomp;
print OUT "$_ $hash{$_}\n";
}
close IN;
close NAME;
close OUT;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询