cuando se usa sed
con un archivo como este
sed 's/a/o' fruits
proporciona la salida necesaria al terminal pero no cambia el contenido del archivo. ¿Cómo cambio permanentemente el archivo con la sustitución anterior?
Respuesta1
Utilice el -i
parámetro para cambiar permanentemente el archivo.
Respuesta2
En general, no deberías hacerlo. GNU coreutils y algunas otras versiones agregan una -i
opción para la edición in situ, pero tiene diferentes implementaciones y no es portátil. Los archivos no son secuencias, por lo que sed
se debe evitar editarlos . La -i
opción sed
también rompe cualquier enlace simbólico, ya que esencialmente lo elimina y recrea el archivo. Utilice ed
o ex
para una alternativa más sensata.
ex -s file << EOF
s/a/o/
w
EOF
Respuesta3
Desde la página de manual de sed:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)