我有一个看起来像这样的文件:
*
TEST CASE1,
$ some text unque633
PLACEMENT 123
*
TEST CASE2,
$ some text unque759
PLACEMENT 321
*
TEST CASE3,
$ some text unque966
PLACEMENT 856
*
我想删除与正则表达式匹配的多行。例如,需要删除从开始TEST CASE2
直到行以开始*
。如何在perl脚本中完成此操作。另外,TEST CASE2
如果我仅知道,我将如何编辑文本unque759
。非常感激。
通过以下算法可以轻松实现所需目标:将所有数据读入变量,将下一个“ *”之前的块“ TEST CASE2 .....”替换为空,输出结果
use strict;
use warnings;
use feature 'say';
my $data = do { local $/; <DATA> }; # read all data at once
$data =~ s/TEST CASE2[^*]*//s; # substitute requested block with nothing
say $data;
__DATA__
*
TEST CASE1,
$ some text
PLACEMENT 123
*
TEST CASE2,
$ some text
PLACEMENT 321
*
TEST CASE3,
$ some text
PLACEMENT 856
*
输出量
*
TEST CASE1,
$ some text
PLACEMENT 123
*
*
TEST CASE3,
$ some text
PLACEMENT 856
*
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句