BASH – Script cambio masivo de texto en multiples archivos.-

El siguiente codigo permite cambiar texto en archivos. Cambia todas las ocurrencias encontradas (para este caso cambia $text1 por $text2).-

#!/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”) :

sed  's/$text1/$text2/g' $line > $line.tmp && mv $line.tmp $line
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.