我是Perl中的新程序員,我希望在文件中找到模式並將其與行的其餘部分一起刪除。例如,如何使用Perl刪除文件匹配和文件的其餘部分使用Perl
「輸入文件」
>hsa-let-7a-5p MIMAT0000062 Homo sapiens let-7a-5p
UGAGGUAGUAGGUUGUAUAGUU
>hsa-let-7a-3p MIMAT0004481 Homo sapiens let-7a-3p
CUAUACAAUCUACUGUCUUUC
>hsa-let-7a-2-3p MIMAT0010195 Homo sapiens let-7a-2-3p
CUGUACAGCCUCCUAGCUUUCC
>hsa-let-7b-5p MIMAT0000063 Homo sapiens let-7b-5p
UGAGGUAGUAGGUUGUGUGGUU
「所需的輸出文件」
>hsa-let-7a-5p MIMAT0000062
UGAGGUAGUAGGUUGUAUAGUU
>hsa-let-7a-3p MIMAT0004481
CUAUACAAUCUACUGUCUUUC
>hsa-let-7a-2-3p MIMAT0010195
CUGUACAGCCUCCUAGCUUUCC
>hsa-let-7b-5p MIMAT0000063
UGAGGUAGUAGGUUGUGUGGUU
我想找到字符串「智人」,並刪除它,以及的其餘部分線。
我寫了下面的代碼,但它不是功能
#!/usr/bin/perl
use strict;
use warnings;
my $find = "Homo sapiens"; #string for searching
open (FILE1, "input.fasta") || die "Cannot open the file!"; #open for reading
open (FILE2, ">>output.fasta") || die "Cannot open the file!"; #open for writing
while (my $line = <FILE1>){
if ($line =~ /$find/){
print FILE2 $line;
print FILE2 scalar <FILE1>;
}
}
close(FILE1);
close(FILE2);
exit;
感謝
'\ s *'是否必要? – Floegipoky 2014-10-30 22:25:06
或者'perl -ne'print除非/ Homo Sapiens /' - - 取決於提問者是否想要空白行或刪除行。 – 2014-10-30 22:32:10
@JimDavis:問題說明他們想要的東西 – Borodin 2014-10-31 00:52:47