Date: Wed, 20 Dec 2000 23:38:56 -0800 From: Doug Barton <DougB@gorean.org> To: Alex Blagoveschensky <alex@belpak.by> Cc: Dave Wilson <davew@sai.co.za>, freebsd-isp@FreeBSD.ORG Subject: Re: Off topic - shell skills Message-ID: <3A41B390.2250BB12@gorean.org> References: <NEBBJFIIGKGLPEBIJACLKEIJCJAA.davew@sai.co.za> <3A3DDE15.D8E377A9@belpak.by>
next in thread | previous in thread | raw e-mail | index | archive | help
For future reference, this doesn't belong on -isp. It's really -questions material. Alex Blagoveschensky wrote: > Try this. But what will you do with Serial in SOA ? ;-) Easy, see below. > #!/bin/sh > for i in * > do > echo $i > cat $i | sed 's/10\.1\.1\.58/10\.0\.0\.1/' >$$ This is the prototypical "useless use of cat." You can call sed with the file as an argument. Also, naming a temp file by the pid can lead to confusion later if your process gets interrupted. > mv $$ $i Dangerous... what happens if your sed doesn't complete successfully? > done There are probably some flaws with the script below, but I use it all the time. In fact, I don't even bother to put it in a file anymore, I can type it out faster. :) Let's assume that you have your serial numbers on a line in the zone file that looks like this: 2000120101 ; Serial #!/bin/sh for file in *; do echo $file sed -e 's/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].*Serial/2000122101 ; Serial/' \ -e 's/10\.1\.1\.58/10\.0\.0\.1/' > $file.sed && mv $file.sed $file done Obviously the pattern matching for the serial number itself could be simpler if you are confident you don't have any unusual instances... Doug -- "The most difficult thing in the world is to know how to do a thing and to watch someone else do it wrong without comment." -- Theodore H. White Do YOU Yahoo!? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A41B390.2250BB12>