sedEdición in situ


Sintaxis

  • sed -I extension - FreeBSD sed (contador de linea continua)
  • sed -I [ extensión ] - NetBSD e Illumos sed (contador de línea continua)
  • extensión sed -i - FreeBSD sed
  • sed -i [ extensión ] - NetBSD, OpenBSD, Illumos, BusyBox y GNU sed
  • sed --in-place [= extension ] - Illumos, BusyBox y GNU sed

Parámetros

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.

Observaciones

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.

No olvides la poderosa 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 .

Edición in situ Ejemplos relacionados