perl中如何打印以某字母为开头的该字母空格后面的字符串,并输入到文本文件

来源:百度知道 编辑:UC知道 时间:2024/05/31 18:03:21
题:ena.txt中内容:
dssp --------E-----E--------E------E----HHHHHHHHHH
SVMpro ECCCCCCCECCCCCECCCCCCCCECCCCCCEECCCCCHHHH
profsec ------EE--------------EE---
问题:
打印以 dssp, SVMpro, porter 为开头的、空格后面的字符串;
输出到文本文件。

open INFILE, 'ena.txt' or die "$!";
open OUTFILE, '> output.txt' or die "$!";

while( <INFILE> ) {
if( /^dssp/ or /^SVMpro/ or /^porter/ ) {
my $line = s/^\w+\s+//;
print OUTFILE $line;
}
else {
next;
}
}
close INFILE;
close OUTFILE;

cat ena.txt | perl -ni -e 'print "$1\n" if /^(?:dssp|SVMpro|porter) (\S*)$/'

正则表达式