Вот быстрый и грязный Perl-файл, который сделает это:
#!/usr/bin/perl
open ( INFILE, 'document.txt' ) || die "Cannot read input file.";
open ( OUTFILE, '>document2.txt' ) || die "Cannot write output file.";
$replaced = "0";
while ( $line_in = <INFILE> ) {
print OUTFILE $line_in;
next unless $line_in =~ /^\s*section1 {\s*$/ && $replaced eq "0";
print OUTFILE " bar\n";
print OUTFILE " really important\n";
while ( $line_in = <INFILE> ) {
next unless $line_in =~ /^\s*}\s*$/;
print OUTFILE $line_in;
$replaced = "1";
last;
}
}
close ( INFILE );
close ( OUTFILE );
Он оставляет исходный файл в покое и дает вам второй файл с изменениями, а не редактирует исходный файл на месте,но это скорее пример базовых принципов, с которых можно начать.