我有一个文件如下,我想搜索这一行test name=""
并删除接下来的 4 行,包括第一行test name=""
。
<test name="FT S_CREATE_DELETE_JOB">
<class name="11 .98. FT S_CREATE_DELETE_JOB">
COMPLETED
<test name="">
<class name="11.98.">
</class>
</test>
我有一个文件如下,我想搜索这一行test name=""
并删除接下来的 4 行,包括第一行test name=""
。
<test name="FT S_CREATE_DELETE_JOB">
<class name="11 .98. FT S_CREATE_DELETE_JOB">
COMPLETED
<test name="">
<class name="11.98.">
</class>
</test>
在大多数语言中,您不直接操作文件。相反,您打开第二个文件,在那里写入结果,然后将第二个文件重命名为第一个文件并删除原始文件:
use strict;
use warnings;
use autodie;
open my $input_fh, "<", "input.txt";
open my $output_fh, ">", "output.txt";
while ( my $line = <$input_fh> ) {
chomp;
last if $line eq '<test name="">';
print {$output_fh} "$line\n";
}
close $input_fh;
close $output_fh;
unlink "input.txt";
rename "output.txt", "input.txt";
这是非常基本的东西,所以我怀疑你不了解 Perl。也许是时候学习它了。