Parámetro | Detalles |
---|---|
extension | Guarde un archivo de respaldo con la extensión especificada, o ningún archivo de respaldo cuando la extension sea una cadena de longitud cero. |
La edición in situ es una extensión común pero no estándar presente en la mayoría de los sistemas recientes.
De un manual BSD sed
(Una sección como esta aparece en todos los manuales actuales de BSD sed
, y los de sus derivados)
No se recomienda dar una extensión de longitud cero cuando esté en su lugar editando archivos, ya que se corre el riesgo de corrupción o contenido parcial en situaciones donde se agota el espacio en disco, etc.
ed
Definitivamente, hay un uso para sed
y para las funciones de edición in situ de sed
, pero cuando se extiende el estándar UNIX, siempre debemos preguntarnos por qué el antiguo estándar UNIX no incluyó esa característica. Aunque UNIX no es perfecto, la ortogonalidad y la integridad de las herramientas se han desarrollado para que se encuentren cerca de la perfección, al menos para los fines que eran visibles alrededor de 1970: la edición de texto y la edición automatizada de texto seguramente eran visibles alrededor de ese tiempo.
En realidad, la idea de sed
no es editar un archivo en su lugar, sino editar una secuencia . Es por eso que el nombre sed
es una forma corta de editor de secuencias . Quita la s
, y obtienes la herramienta que realmente fue diseñada para la edición de archivos : ed
:
printf 'g/what to replace/s//with what to replace/g\nw\nq\n' | ed file
o cat file_edit_commands | ed file
.