En algunos casos reemplazar texto de un archivo y si este contiene varias palabras a reemplazar es útil usar sed.
Con el siguiente comando se puede reemplazar, como ejemplo, todas las entradas que contengan el termino hola a hello en un archivo llamado palabras.txt
sed 's/hola/hello/g' palabras.txt
Existen muchas otras formas, ¿Cual conoces o utilizas?
Con la forma que mencionas hay que recordar que muestra el cambio por pantalla, si quisiéramos hacerlo sobre el mismo fichero, hay que usar la opción ‘-i’ quedando algo asi:
sed -i ‘s/hola/hello/g’ palabras.txt
</pre
También aprovecho para comentar que si se usa en un script, por lo menos en Bash y Dash, lo mas recomendable para no liarse con las '/' para representar el cambio, lo mejor es usar como separador '|' , quedando de la siguiente forma:
sed ‘s|$cadena|$remplaza|g’ $file
Un Saludo
Lo del pipe como separador es nuevo para mi. Gracias por el dato