用perl该处理
发布网友
发布时间:2022-06-02 16:59
我来回答
共1个回答
热心网友
时间:2023-11-21 03:48
其实是一个很简单的查找,再输出的问题。根据你的要求,我简单的写个给你参考下:
#!/usr/bin/per -w
use strict;
open F1,"<file1"
or die"cannot open file1:$!":
open F2,"<file2"
or die"cannot open file2:$!";
open OUT,">out"
or die"cannot open out:$!";
my %file1;
while(<F1>){
chomp;
s/^\s+|\s+$/;#去掉头尾空白
$file1{$_}=1;
}
my $gene;
while(<F2>){
chomp;
s/^\s+|\s+$/;
if(/^rp/){
if($file1{$_}){
$gene=$_;
}else{
$gene='';
}
}else{
if($gene){
if(/E\d+\s+\d+\s+\w+\s+\d+\s+\d+/){ #只是根据你的要求写的,具体自己决定
print OUT "$_\n";
}
}
}
}
很多地方可以写得简单点或合并,只是为了让程序更易理解,写得有点长,仅供参考,具体自己修改,思路是这样的