Sustituir texto en archivos

Si queremos reemplazar el texto en un archivo podemos utilizar perl:
perl -pi -e   's/cadena abuscar/cadenaporlaquesustituimos/g'

Si queremos reemplazar el texto de muchos archivos ejecutamos el comando find combinado con perl:

find /directorio -name "*.txt" | xargs perl -pi -e 's/cadena abuscar/cadenaporlaquesustituimos/g'


Podemos usar el AWK para lo mismo:

find /directorio -name "*.txt" | awk '{ gsub(/cadena abuscar/, "cadenaporlaquesustituimos"); print }'

o
 

cat archivo.txt | awk '{ gsub(/cadena abuscar/, "cadenaporlaquesustituimos"); print }'
ej: cat archivo.txt | awk '{ gsub(/Linux/, "Opensuse"); print }'

Si usamos un editor como vi, podemos usar el siguiente comando::%s/cadena abuscar/cadenaporlaquesustituimos/g

Un ejemplo práctico en vi para sustituir los caracteres ^M:
:%s/^V^M//g


Al pulsar control V y control M el resultado sera:
%s/^M//g

Que eliminara los caracteres ^M

Si queremos hacerlo usando perl utilizaremos los siguiente:
cat archivo.txt | perl -pi -e 's/\r$//'

Comentarios

Jose ha dicho que…
Una entrada muy útil, como todas las tuyas. Gracias!
Unknown ha dicho que…
Excelente, justo lo que estaba buscando, un post muy acertado, gracias
Marcos ha dicho que…
Gracias me sirvió tu post
Unknown ha dicho que…
Es exactamente lo que buscaba, muy buen post, gracias.

Entradas populares de este blog

Compilar php 4.4 con ldap en centOs

Oracle : Tablas y objetos bloqueados