On Tue, 2002-10-15 at 16:09, Mark wrote:
> On Tuesday 15 October 2002 01:05 pm, Bret is done writ:
> <snip>
> > have been working with awk lately and this seems a good time for it.  
> <snip>
> And then..the script:
> 
> BEGIN {
> #  set the variables for the address change
> # * * * * * * * * * * * * * * * * * * * * * * * * 
> #    Make sure you leave the $ at the end of the oldip address
> # to take care of the situation where the last octet is less thatn
> # three digits in decimal   
> 
> Not necessary.
> # * * * * * * * * * * * * * * * * * ** * * * * *     
> 
> #    oldip="192.168.0.13$" changed to below
>     oldip="192.168.0.13"
>     newip="192.168.0.123"
> }

Thanks for the clean up.  I am certainly not an awk guru but it's nice
to see I was on the right track :)

when I ran the code I sent using sub(oldip,newip) as you suggest,
without the $ end of line placeholder, it changed addresses like
192.168.0.131 to 192.168.0.1231.  I will run run your code but assuming
that it works, wy does it and mine did not?  Is there some magic in
gsub?

> {
> # increment the serial number which should be the line directly below
> # the SOA line
>    if ($0 ~ /SOA/) {
>       print;        
>       getline;
>       ser_no = $(1);
>       restofline = substr( $0, index( $0, /;/ ) + 1); # get rest of line

This looks like a good idea and I will try to figurout how it works :)

>       print "\t\t\t\t" ++ser_no restofline;
I like the increment, is there no easy way to capture the number of tabs
or spaces in the beginning whitespace?
>    }
>    else {
>       if ( $0 ~ oldip))
>          gsub(oldip,newip);
>       print
>    }
> }
> 
>       mark (yes, I *am* an awk guru)
> -- 

Cool and thanks again for the feedback.  awk get more cool the more I
get into it.

Bret (I am nowhere near guru status :)



-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to