There are a variety of ways to replace one string of text with another across many files. Here are a few ways:
using sed and find:
sed 's/oldstring/newstring/' "$1" > "$1".new && find -iname "*.new" | sed 's/.new//' | sh
using grep and sed:
grep -rl oldstring . | xargs sed -i -e 's/oldstring/newstring/'
using grep and perl:
grep -rl oldstring . | xargs perl -pi~ -e 's/oldstring/newstring/'
Please offer your own suggestions.
Best Answer
I'd use Python for this. Put all this code into a file called mass_replace and "
chmod +x mass_replace
":For a single search and replace of one string in one type of file, the solution with find and sed isn't bad. But if you want to do a lot of processing in one pass, you can edit this program to extend it, and it will be easy (and likely to be correct the first time).