El siguiente codigo permite cambiar texto en archivos. Cambia todas las ocurrencias encontradas (para este caso cambia $text1 por $text2).-
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash ruta="/rut01/home/prueba" text1="/rut01/home1/monitor" text2="/rut99/home2/jose" archivos="$ruta/archivos.txt" # Genera un archivo con el nombre de todos los archivos con extensión .sh ls -1 $ruta/*.sh > $archivos # Procede a leer cada linea del archivo genrado cat $archivos | while read line;do # procede a realizar el cambio de la variable contenida en $text1 por $text1 perl -pi -e "s[$text1][$text2]g" $line done exit |
Otra opción si es que no se tiene instalado el comando «perl» se puede realizar con el comando «sed» de la siguiente forma (Cambiando la linea del comando «perl» por la del comando «sed») :
1 |
sed 's/$text1/$text2/g' $line > $line.tmp && mv $line.tmp $line |