Replacing string in multiple files

Dan Nelson dnelson at allantgroup.com
Thu Jul 10 11:27:00 PDT 2003


In the last episode (Jul 10), Jack L. Stone said:
> Am running FBSD.4.8-R
> 
> At times, I need to replace an existing string in a file that has the same
> name in all ~user accounts and know there must be a short script to do that
> and suspect it involves sed(1). However, had no luck getting it to work
> yet. Basically want to do this:
> 
> - find same files in all ~users by same name "~users/myfile"
> - replace this ${string} with this ${string} in the above files
> - report list of above files modified successfully

If all your users share a common hierarchy:

sed -i.bak -e s/oldstring/newstring/ /home/*/myfile

You'll need to be running FreeBSD 4.7 or newer for sed -i to work.  Not
sure how to get a list of changed files, though.  Maybe just do a grep
beforehand?

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list