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$//'
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