#!/usr/bin/perl -w use strict; #my $location ="/location2.html"; my $location ="/"; my $file_name ='pconn.conf'; my $conf_new ; my $max_connections=10; $/ = undef; #Open file for reading and slurp into file open (FILE, "< $file_name") or die $!; my $file = <FILE>; close FILE; # check for the block we want if ($file =~ m/\<Location\ $location.+?\<\/Location\>/s){ my $first=$`; #Everything before matched string my $block = $&; #Matched block my $second=$'; #Everything after matched string if($block =~ s/MaxConnPerIP\s*(.+?)*/MaxConnPerIP $max_connections +/g) { $conf_new= $first . $block . $second; } } # Open file for writing and dump matched and unmatched block open (OUTFILE, "> $file_name.tmp") or die "cannot open $file_name.tmp +for write $!"; print OUTFILE $conf_new; close OUTFILE; # save copy of original file rename ($file_name,"$file_name.bak") || die "problem with rename $!"; # replace original with the modified version rename ("$file_name.tmp", $file_name) || die "problem with rename $!";
In reply to Re^6: Search replace with a block
by santoshrao99
in thread Search replace with a block
by santoshrao99
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |