我想借助正则表达式在特定行中拆分大文件以分割小文件。任何帮助? 我的代码在做这个工作,但它也创建了一个空文件。避免创建空文件
#!/usr/local/lib/perl/5.14.2
open(INFILE, 'test.txt');
@lines = <INFILE>;
$file = "outfile";
for ($j = 0; $j <= $#lines; $j++) {
open(OUTFILE, ">", $file . $j);
$file_name = $file . $j;
#print "file is $file_name\n";
$i = 0;
while (@lines) {
$_ = shift @lines;
chomp;
$i++;
if ($_ =~ /^###\s*(.*)\s*###/ && $i > 1) {
unshift @lines, "$_\n";
print "$filename\n";
last;
}
print OUTFILE "$_\n";
}
close(OUTFILE);
}
close(INFILE);
我的输入文件包括:
-------------
### abcd hdkjfkdj ####
body 1 dsjklsjdfskl
### zyz fhid ###
abcdksdsd djnfkldsfmnsldk ;lkjfkl
---------------------------
它正在创建3个outfiles称为outfile0
,outfile1
,outfile2
。但outfile0
是空的我想避免这种情况。
那我们怎么知道你的代码出了什么问题,直到我们看到它? – 2014-10-31 08:37:26
我想添加我的代码,但系统不允许我。 – 2014-10-31 08:39:18
哪个系统?你的意思是StackOverflow?只需编辑您的帖子并粘贴代码即可。 – 2014-10-31 08:39:58