我想借助正則表達式在特定行中拆分大文件以分割小文件。任何幫助? 我的代碼在做這個工作,但它也創建了一個空文件。避免創建空文件
#!/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