这是输入文件:文件分割成多个文件写2种模式之间的线路到一个新的文件
#cat myfile
-- START
whatever
whatever
-- END
-- START
whatever
whatever
-- END
-- START
whatever
whatever
-- END
-- START
whatever
whatever
-- END
我需要抓住-- START
和-- END
之间行写这些行到一个单独的文件。因此,在这个用例,我应该已经创建如下4个文件:
# cat file1
whatever
whatever
# cat file2
whatever
whatever
# cat file3
whatever
whatever
# cat file4
whatever
whatever
这里是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
open (my $fh, "<", "/var/tmp/myfile");
my $counter = 0;
while (<$fh>)
{
if (/START/../END/)
{
my $filename = "/var/tmp/file".$counter;
open (my $oh, ">", $filename);
print $oh $_;
}
$counter++;
}
问题:我的代码是创建一个文件每个线在-- START
和-- END
内发现
你能帮我弄清楚如何解决这段代码。谢谢。
不工作。也认为它应该是'gt'而不是'>' – slayedbylucifer 2014-09-11 09:41:53
在@ miller的编辑之后,代码正在工作。谢谢。 +1 – slayedbylucifer 2014-09-12 06:17:32
@slayedbylucifer它是我的第二次编辑后,https://eval.in/192095 – 2014-09-12 06:26:33