On Fri, Apr 04, 2008 at 01:07:10AM -0700, Parvinder Bhasin wrote:
> I am writing up a script to automatically increment the serial number of 
> bind dns zone file  , but I am running across issues doing in place 
> substitution with either sed or even perl for that matter.  I can do 
> this easily in Linux but am having hard time doing so in openbsd.  I 
> would like to search for the serial number , increment by one and then 
> save the file.
> 
> Any help...highly appreciated.
> 
> Thx.
> 
> Here is my code snippet:
> 
> #!/bin/sh
> 
> for file in $(ls /var/named/master/*.file);
> do
>  if [ -f $file ];
>  then
>    OLD=`grep serial $file | awk '{print $1}'`
>        echo $OLD
>        NEW=$(($OLD + 1))
>        echo $NEW
>        *perl -p -i -e 's/$OLD/$NEW/' $file  <--------------tried using 

Works for me. Try just the perl -pi -e 's/foo/bar/' testfile.txt
on its own first. You might have a problem with the 
substitution pattern. Check the timestamps of
the target file before and after. It should work.

What is the * doing before perl?

> perl but still the file didn't change with the incremented serial number
>        sed 's/$OLD/$NEW/' $file <-----------------I know this will only 

sed can not do it. perl can.

> search and replace but how do I do in in-place so that the file itself 
> is modified.*
>  fi
> done

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB

Reply via email to