[CentOS] replace multiple string

Fri Sep 23 21:20:06 UTC 2011
Thomas Johansson <thomasj at isy.liu.se>

On 2011-09-23 19:47, madunix at gmail.com wrote:
> Hi
>
>
> I would like to use a bash script that searches files and
> subdirectories name in a directory /var/ww/html/web
> for a specific string, and when it finds the search string, replaces
> the string (old1) with new string (new1), and so on
> old2 with new2 ....oldn with newn.
>
>
>
> replace_string.sh
> #!/bin/bash
> for db in $(find /var/www/html/web -name * -exec)
> do
>    sed -e "s/old1/new1/" \
>    sed -e "s/old2/new2/" \
> ...
>    sed -e "s/oldn/newn/" $db

A more efficient way to perform sed is

sed -e "s/old1/new1/" \
     -e "s/old2/new2/" \
...
     -e "s/oldn/newn/" $db

or

sed -e "s/old1/new1/ ; s/old2/new2/" .. $db


Other hints for efficient nash shell scripts..
http://hacktux.com/bash/script/efficient