[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [K12OSN] How to change X-terminales networks

Rob Owens wrote:

I'm not an expert on the syntax, but I know you can use 'sed' for this.
It'll find and replace text in any file.  Something like:

sed s/ myconfigfile.txt > myconfigfile.txt.2

That'll find the first IP address in myconfigfile.txt, and replace it
with the 2nd IP address in myconfigfile.txt.2 -- you'll then have to
delete the original config file and replace it with the new one.

You could probably put together a script that does a recursive grep
(grep will find text in a file) and the run sed on that file.  This is
probably wrong, but it might go something like this:


# Change these variables to suit your needs

for FILE in `ls -R $SEARCHDIR`
	grep $OLDIP $FILE
	if [ $? == 0 ]; then
		sed s/$OLDIP/$NEWIP/g $FILE > $FILE.new && mv -f $FILE.new $FILE

Instead of creating a new file using sed and then overwriting the old file you can use sed with the in-place (-i) flag. If you specify an extension with the -i flag, then a backup of the original file will be saved using that extension.

You can also replace strings inline using Perl for instance:

	perl -p -i -e 's/OLD/NEW/g' files

Nils Breunese.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]