use strict;
use warnings;
use feature 'say';
my $filename = 'config.xml';
my $insert =
'<vhostMap>
<vhost>google</vhost>
<domain>google.com, www.google.com</domain>
</vhostMap>';
open my $fh, '<', $filename
or die "Couldn't open $filename: $!";
my $data = do{ local $/; <$fh> };
close $fh;
$data =~ s/((.*?\n){8})/${1}$insert\n/s;
open $fh, '>', $filename
or die "Couldn't open $filename: $!";
say $fh $data;
close $fh;
阵列切片法
use strict;
use warnings;
use feature 'say';
my $filename = 'config.xml';
my $insert = '<vhostMap>
<vhost>google</vhost>
<domain>google.com, www.google.com</domain>
</vhostMap>';
open my $fh, '<', $filename
or die "Couldn't open $filename: $!";
my @lines = <$fh>;
close $fh;
open $fh, '>', $filename
or die "Couldn't open $filename: $!";
say $fh @lines[0..7],$insert,"\n",@lines[8..$#lines];
close $fh;
数组迭代法
use strict;
use warnings;
use feature 'say';
my $filename = 'config.xml';
my $insert = '<vhostMap>
<vhost>google</vhost>
<domain>google.com, www.google.com</domain>
</vhostMap>';
open my $fh, '<', $filename
or die "Couldn't open $filename: $!";
my @lines = <$fh>;
close $fh;
open $fh, '>', $filename
or die "Couldn't open $filename: $!";
my $line_count = 0;
for (@lines) {
chomp;
$line_count++;
say $fh $_;
say $fh $insert if $line_count == 8;
}
close $fh;
输入
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
line 11
line 12
输出
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
<vhostMap>
<vhost>google</vhost>
<domain>google.com, www.google.com</domain>
</vhostMap>
line 9
line 10
line 11
line 12
to_add = """<vhostMap>
<vhost>google</vhost>
<domain>google.com, www.google.com</domain>
</vhostMap>
"""
with open("config.xml", "r") as f:
all_lines = f.readlines()
with open("config.xml", "w") as f:
for l in all_lines[:8]: f.write(l)
f.write(to_add)
for l in all_lines[8:]: f.write(l)
在perl中,这种操作可以通过多种方式轻松实现,您可以随意选择一种您认为有利的方式
替代方法
阵列切片法
数组迭代法
输入
输出
在Python中,这很容易:
对我来说,使用shell命令最简单的方法是显示原始config.xml的头8行,并将输出偏离到一个新文件中。然后用代码附加新文件,最后从第8行开始包含config.xml的尾部
最后,您可以用newfile替换原始config.xml。在执行此操作之前,请检查config.xml的内容
相关问题 更多 >
编程相关推荐