我希望将输入文件中的行@cluster t.# has ### elements
(包括此行)和行@cluster t.#+1 has ### elements
(最好省略此行)之间的所有内容打印到相应的编号输出文件(clust(#).txt
)中。到目前为止,该脚本创建了适当的编号文件,没有任何内容。
#!/usr/bin/perl
use strict;
use warnings;
open(IN,$ARGV[0]);
our $num = 0;
while(my $line = <IN>) {
if ($line =~ /^\@cluster t has (\d+) elements/) {
my $clust = "full";
open (OUT, ">clust$clust.txt");
} elsif ($line =~ m/^\@cluster t.(\d+.*) has (\d+) elements/) {
my $clust = $1;
$num++;
open (OUT, ">clust$clust.txt");
print OUT, $_ if (/$line/ ... /$line/);
}
}
https://stackoverflow.com/questions/37935282
复制相似问题