jueves, diciembre 17, 2020

Recetas de sed (stream editor)

Recetas de sed (stream editor)

sed es un editor de flujo: Lee líneas de la entrada estándar o de un fichero, le aplica una serie de comandos especificados en un script y vuelca por su salida estándar el resultado de ejecutar dichos scripts. Esto lo hace de una sola pasada, sin necesidad de leer el fichero varias veces. Este es un pequeño resumen de alguno de los problemas y las soluciones para las que he usado el sed. Esta entrada me servirá de recordatorio, ya que no es una herramienta de la que tengo que hacer uso habitualmente.

Esta será una entrada dinámica, que iré ampliando poco a poco. Ya os digo que sed no es uno de mis comandos habituales, pero si lo uso de vez en cuando para ciertas cosas.

Índice

Opciones líneas de comando

Las opciones básicas para ejecutar sed son las siguientes:1

sef [-n] script [fichero...]
sed [-n] -e script [-e script]... [-f fichero_script]... [fichero...]
sed [-n] [-e script...] -f fichero_script [-f fichero_script] [fichero]

Añadir un texto al final de todas las líneas de un fichero

Supongamos que tenemos un fichero de texto, datos.txt , que queremos añadir al final de cada línea <br\/> - el fin de línea de html. Si el contenido es:

línea 1
línea 2
línea 3

Si ejecutamos el comando:

sed -e 's/$/<br\/>/' datos.txt

El resultado será el siguiente:

línea 1<br/>
línea 2<br/>
línea 3<br/>

El script s/$/<br\/>/ sustituye (comando s) el fin de línea ($) por <br\/>

Borrar espacios al comienzo de una línea

Supongamos que tenemos un fichero texto.txt de esta guisa y queremos borrar todas las líneas al comienzo del mismo:

     Línea 1
   Línea 2
 Línea 3

Pues esto se puede hacer con sed con la siguiente orden:

sed -e 's/^ //' texto.txt
Ojo con el espacio entre ^ y /. El resultado de la operación será:
línea 1
línea 2
línea 3

Notas

  1. Los corchetes indican que el parámetro o el argumento es opcional

No hay comentarios: