我有一个文本文件,我想使用 perl 将其拆分为多个文本文件并输出
例如:
数据开始于:
[TABLE]
DATA........
DATA........
[/TABLE]
[PAGE]
[TABLE]
DATA........
DATA........
[/TABLE]
期望的输出:
文件1.txt
DATA........
DATA........
文件2.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++;
}