Reemplazar texto en uno o varios archivos desde terminal Linux

Para reemplazar texto en un archivo desde una Terminal en Linux ejecuta el siguiente comando, donde foo es el texto buscado, bar el texto que lo reemplazara y file es el archivo donde se realizara el reemplazo, cambia estos según sea tu caso.

sed -i ‘s/foo/bar/g’ file

Tambien podemos hacer varios reemplazos a la vez con el siguiente comando.

sed -i ‘s/foo/bar/g; s/foo2/bar2/g; s/foo3/bar3/g’ file

Si queremos reemplazar un texto en todos los archivos que terminen con la extensión «.conf » ejecutamos el comando siguiente.

sed -i  --- ‘s/foo/bar/g’ *.conf

Si queremos reemplazar texto en todos los archivos que en su nombre contengan la palabra «algo» ejecutamos el comando siguiente.

sed -i  --- ‘s/foo/bar/g’ *algo*

El siguiente comando es parecido al anterior pero lo hace de forma recursiva en todos los subdirectorios.

find . -type f -name «*algo*» -exec sed -i ‘s/foo/bar/g’ {} +

Deja un comentario

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