LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2194|回复: 3

请教各位:用perl 如何实现从文本筛选特定的行保存到另外一个文件

[复制链接]
发表于 2009-11-16 21:45:42 | 显示全部楼层 |阅读模式
如:
Query= nmtca_Cluster3542.seq.Contig1 [178 - 513]
         (112 letters)
Database: g:/blast/wormpep206.fasta
           24,143 sequences; 10,671,996 total letters
Searching..................................................done
                                                                 Score    E
equences producing significant alignments:                      (bits) Value
Y54F10AM.8 Unknown                                                 101   8e-023
F09B12.3 Unknown                                                       82   4e-017
Y37D8A.2 Unknown                                                       55   7e-009
Score =  101 bits (251), Expect = 8e-023
Identities = 0/101 (0%), Positives = 0/101 (0%), Gaps = 2/101 (1%)
Query: 12  NYRTMSVCVVA-NAGILHTVEGDTC-DGGNKVAVGKYENAVNNTGWGKLEIETFNNFEPE 69
Query: 70  VQAYAAGILEGKLTHLQISYHIENTVADICVNHSAFCKRLH 110
Score = 82.4 bits (202), Expect = 4e-017
Identities = 0/77 (0%), Positives = 0/77 (0%)
Query: 33  DTCDGGNKVAVGKYENAVNNTGWGKLEIETFNNFEPEVQAYAAGILEGKLTHLQISYHIE 92
Query: 93  NTVADICVNHSAFCKRL 109
Score = 55.1 bits (131), Expect = 7e-009
Identities = 0/100 (0%), Positives = 0/100 (0%), Gaps = 4/100 (4%)
Query: 14  RTMSVCVVANAGILHTVEGDTCDG---GNKVAVGKYENAVNNTGWGKLEIETFNNFEPE- 69
Query: 70  VQAYAAGILEGKLTHLQISYHIENTVADICVNHSAFCKRL 109
BLASTP 2.2.16 [Mar-25-2007]
Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein database search
programs",  Nucleic Acids Res. 25:3389-3402.
Query= nmtca_Cluster3543.seq.Contig1 [43 - 522]
         (160 letters)
Database: g:/blast/wormpep206.fasta
           24,143 sequences; 10,671,996 total letters
Searching..................................................done

***** No hits found ******

以上数据我只要:
Query= nmtca_Cluster3542.seq.Contig1 [178 - 513]
Y54F10AM.8 Unknown                                                   
F09B12.3 Unknown                                                      
Y37D8A.2 Unknown                                                      

Query= nmtca_Cluster3543.seq.Contig1 [43 - 522]
***** No hits found ******

数据量太大,有13000多页,perl我又不太会,所以请各位高手帮帮小弟!!
不胜感激!
 楼主| 发表于 2009-11-17 13:41:24 | 显示全部楼层
#!/usr/bin/perl -w
print "please enter the source filename(include suffix):";
chomp($file=<STDIN>);
print "please enter the output filename(include suffix):";
chomp($out=<STDIN>);
open(OUT,">$out")||die "can't open the file!\n";
open(FILE,"$file")||die "can't open the file!\n";
$IN=<FILE>;
$i=0;
while($IN){
if ( /nmtca_Cluster|Unknown|No hits found/){
print OUT $IN;
$i++;
}
$FL=<FILE>;
}
print "the total of nematode sequence is $i";
close(FILE);
close(OUT);

这样写还是运行不出结果,请高手指点
回复 支持 反对

使用道具 举报

发表于 2009-11-23 19:18:18 | 显示全部楼层
grep -e 跟正则表达式
回复 支持 反对

使用道具 举报

发表于 2009-12-3 17:29:32 | 显示全部楼层
如果非要用perl 的话其实一行就可以

perl -nle 'print if  /nmtca_Cluster|Unknown|No hits found/' 你的文件名 > 输出文件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表