Date: Tue, 23 Feb 1999 21:29:18 +1000 From: Greg Black <gjb@comkey.com.au> To: Dan Busarow <dan@dpcsys.com> Cc: Hugh Blandford <hugh@island.net.au>, questions@FreeBSD.ORG Subject: Re: Changing large no. of DNS records Message-ID: <19990223112918.20129.qmail@alpha.comkey.com.au> In-Reply-To: <Pine.BSF.3.96.990222103438.6495G-100000@java.dpcsys.com> of Mon, 22 Feb 1999 10:38:37 PST References: <Pine.BSF.3.96.990222103438.6495G-100000@java.dpcsys.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > I'm changing IP addresses of a nameserver :(( I also need to change the MX > > records in all my zone files. Is there a utility that I can make look in > > each file in a directory and do the equivalent of a global search and replace. > > sed > > # cd /etc/namedb > # for i in db.* > # do > # sed -f sedfile $i > $i.out > # mv $i $i.save > # mv $i.out $i > # done > > # cat sedfile > s/IN MX 10 mail.my.domain./IN MX 10 newmail.my.domain./g The basic concept is okay, but sed is definitely the wrong tool here. Since he wants to edit files in place, the correct tool is ed -- that way you avoid all the silly creation of the .out files and the subsequent renaming: for f in db.* ; do ed -s $f < edfile ; done And edfile is something like this: /MX 10 mail.my.domain/s//MX 10 newmail.my.domain/ wq Of course, for both the sed and ed solutions, the actual REs that you use will probably have to be a little more complex, since it's not at all likely that you could rely on the files being so consistent as these trivial examples show. But that's just an exercise. -- Greg Black <gjb@acm.org> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990223112918.20129.qmail>