[CentOS] replace multiple string

m.roth at 5-cent.us m.roth at 5-cent.us
Fri Sep 23 17:51:47 UTC 2011


madunix at gmail.com wrote:
>
> 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
> done

Close. I think
find /var/www/html/web -type f -exec sed -i -e
"s/old1/new1/;s/old2/new2/;..." {} \;
would do it. The -i is to make the change inplace, editing the existing file.

         mark




More information about the CentOS mailing list