テレマコスの返事の後、事態は急展開を始めた。これは、結局のところ、私が見ているソリューションとして機能します。
- 区切り行を除いて、2 つの文字列 (1 つは "CINFILE=" で終わる行、もう 1 つは単一の "#" を含む行) で区切られた行を別々の行に抽出しようとしています。これは Telemachus のソリューションで実現できます。
- 最初の行には、削除したいスペースがあります。私も含めています。
- また、各行セットを個別のファイルに抽出しようとしています。
コードは醜いものとして分類できますが、これは私にとってはうまくいきます。これは、私が現在 Perl にほぼ慣れていないためです。とにかくここに行きます:
#!/usr/bin/env perl
use strict;
use warnings;
my $start='CINFILE=$';
my $stop='^#$';
my $filename;
my $output;
my $counter=1;
my $found=0;
while (<>) {
if (/$start/../$stop/) {
$filename=sprintf("boletim_%06d.log",$counter);
open($output,'>>'.$filename) or die $!;
next if /$start/ || /$stop/;
if($found == 0) { print $output (split(/ /))[1]; }
else { print $output $_; }
$found=1;
} else { if($found == 1) { close($output); $counter++; $found=0; } }
}
それが他の人にも利益をもたらすことを願っています。乾杯。