Modificar rutas de shells de forma masiva en *NIX

Ocasionalmente, se tiene la necesidad de modificar un número de shells, ya sea por que se tienen valores en “duro” o por cambiar algunas instrucciones.

En particular, donde trabajo actualmente se optó por la estratégia de “clonar” las instalaciones del RDBMS de Oracle mediante un archivo de TAR, esto ocasionó que muchas utilerías apuntaran a la ruta del ORACLE_HOME incorrecto, para resolver ese problema escribí esta serie de comandos que espero les sea útil:

export OLD_OH=/oracle/app/oracle/product/10.2.0.1_dbv/
export NEW_OH=/oracle/app/oracle/product/10.2.0.4dv/
 
for i in $( find . -type f -exec grep '#!/bin/sh' {} /dev/null \; ); 
do echo $i | for a in $( awk -F: '{print $1}' ); 
do sed "s=$OLD_OH=$NEW_OH=g" $a > $a.bkp;
rm $a ; 
mv $a.bkp $a ; 
done ;
done
Posted on July 19, 2010 at 10:10 am by Luis Esteban · Permalink
In: *NIX, Oracle, Sistemas Operativos, Solaris · Tagged with: , , , , , ,

Leave a Reply

Powered by WP Hashcash