作者akillerbear (我是歹人雄大)
看板perl
标题[问题] 之前问过的程式加了新条件~~
时间Tue Oct 24 01:51:52 2006
#!/usr/bin/perl
#serch and find what I want
use strict;
my $content;
my $accession;
my $REPORT_FILE = "report.txt";
my $fasta_file = $ARGV[0] || 'gbvrl1.seq';
unless ( -e $fasta_file ) {
die "$0: ERROR: missing file: $fasta_file";
}
open( IN, $fasta_file ) or die "$0: ERROR: $fasta_file: $!";
while (<IN>) {
$content .= $_;
$accession = $1 if ( $_ =~ /^ACCESSION\s+(\S+)/ );
if ( $_ =~ /^\/\// ) {
open OUT, "> $accession";
print OUT $content;
close OUT;
$content = undef;
}
}
/////////////////////////////////////
上面是小弟之前问过的问题~~
就是在每个"//"为结尾的档案做切割输出
後来因为这样输出後档案太多了,一个gbvrl1.seq就可以输出7万多笔
如此一来我若是先输出再把我要的档案去grep出来就太费时了
所以我想说能在文件档中"ORGANISM"栏位里有提及的名称如"Enterovirus"等
才作输出如此一来就可以节省不少时间了
请问有比较好的做法吗~~THX
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.118.131
1F:→ iFEELing:其实直觉想到的就是灌到 DB 里去再让 DB 帮你找出来 XD 10/24 01:58