【发布时间】:2021-06-20 13:14:05
【问题描述】:
我有一个文本文件,我希望从文本文件中省略一些行,并使用该字符串创建一个新文件。好消息是我的文本文件以包含“START”并以“END”结尾的行开头我需要的文本块。
例如,我的文本文件如下所示:
1
2
3
Start
4
5
6
End
7
8
Start
9
10
End
所需的输出是两个字符串,我可以将它们输出到如下所示的文本文件中:
Start
4
5
6
End
Start
9
10
End
我目前拥有的:
open(RH, '<', $fileName) or die $!;
while(<RH>) {
#print $_;
chomp $_;
if ($_ eq 'START') {
$str = "$str"."$_\n";
}
}
但我不确定如何继续。
编辑: 我使用以下方法回答了这个问题:
$cmd = q(awk '/Start/,/End/ {print}' foo.txt);
my $output = qx($cmd);
my @cards = split (/(?<=\End)/, $output);
【问题讨论】: