perl を使用して複数のテキスト ファイルに分割し、出力したいテキスト ファイルがあります。
例えば:
データは次のように始まります。
[TABLE]
DATA........
DATA........
[/TABLE]
[PAGE]
[TABLE]
DATA........
DATA........
[/TABLE]
望ましい出力:
File1.txt
DATA........
DATA........
File2.txt
DATA........
DATA........
したがって、基本的に[TABLE]
&の間にあるもの[/TABLE]
はすべて、新しいテキスト ファイルなどになります。また、新しいテキスト ファイルの命名規則は、File1.txt、File2.txt などになります。
私を正しい方向に向けてください。
ご助力いただきありがとうございます。
#!usr/bin/perl
my $fi, $fi2;
my $line;
my $i;
my @lines;
my @filenameparts;
my $filename = "file1.txt";
open($fi, "< complex.txt");
@lines = <$fi>;
open ($fi2, " > $filename");
foreach (@lines)
{
if (($i > 0) and $_ =~ /[TABLE]/)
{
@filenameparts = split("_", $filename);
foreach (@filenameparts)
{
print "-----------------------------\n";
print .$_;
print "-----------------------------\n";
}
@filenameparts[1] = substr(@filenameparts[1], 0, @filenameparts[1].length() - 5);
@filenameparts[1] = ($filenameparts[1] + 1);
$filename = @filenameparts[0]."_".@filenameparts[1].".txt";
print $filename;
close($fi2);
open ($fi2, " > $filename");
$i = 0;
print $fi2 $_;
}
else
{
print $fi2 $_;
}
$i++;
}