Quiero leer el archivo "teste", hacer "buscar & reemplazar" y sobrescribir "teste" con los resultados. Cuanto más me acercaba hasta ahora es:Sustitución de texto (lectura del archivo y guardado en el mismo archivo) en Linux con sed
$cat teste
I have to find something
This is hard to find...
Find it wright now!
$sed -n 's/find/replace/w teste1' teste
$cat teste1
I have to replace something
This is hard to replace...
si trato de guardar en el mismo archivo de esta manera:
$sed -n 's/find/replace/w teste' teste
o:
$sed -n 's/find/replace/' teste > teste
El resultado será un archivo en blanco ...
Sé que me estoy perdiendo algo muy estúpido, pero cualquier ayuda será bienvenida.
ACTUALIZACIÓN: En base a los consejos que se dan por la gente y este enlace: http://idolinux.blogspot.com/2008/08/sed-in-place-edit.html aquí está mi código actualizado:
sed -i -e 's/find/replace/g' teste
Muchas gracias. ¿Sería "ed" más apropiado para editar en lugar de "sed"? – Roger
Sí y no; 'ed' es mejor para la edición in situ pero no es muy conveniente para su uso en scripts, por lo que' sed' ha crecido una opción no estándar (por POSIX) '-i'. – geekosaur
Por lo tanto, para la edición in situ de buscar y reemplazar, lo mejor en Linux es "sed". ¿Es correcto decir eso? – Roger