Herramientas de usuario

¡Esta es una revisión vieja del documento!


sed

sed es un editor de texto basado en cadenas de caracteres. En esencia puede considerarse como una versión extendida del editor de líneas ed.

A diferencia de este, permite editar el texto por medio de guion de operaciones, realizando generalmente una única pasada de interpretación sobre la entrada/s.

De esta manera, se lo puede emplear para realizar transformaciones de texto en una cadena de entrada (un fichero de texto o un cadena de entrada provista desde caño). La capacidad de sed para filtrar texto en un caño es lo que lo distingue particularmente de otros tipo de editores de texto.

Si eres muy expert@, podrás incluso recurrir a la edición en la línea o globalmente utilizando expresiones regulares.

Existen 3 casos específicos en los que conviene utilizar sed:

  1. editar ficheros muy largos de editar interactivamente.
  2. editar ficheros de cualquier tamaño cuando la secuencia de comandos de edición es muy complicada para hacer el tipeado confortable en ambiente interactivo.
  3. usar múltiples funciones globales de edición eficientemente en un solo paso.

Comandos de sed

sed opera de manera similar a ed. Estos son los comandos básicos.

Caracter Acción
r carga un fichero
w escribe a un archivo
p imprime el espacio patrón
s sustituye patrones
c añade texto
d borra texto
i inserta texto
a añade texto al espacio patrón
l lista el contenido del espacio patrón
n añade una nueva línea al espacio patrón
b ramifica a un rotulo, se emplea de forma similar a un goto

Instrucciones de sed

He aquí algunas instrucciones comunes de sed que forman comandos complejos.

Instrucción de sedResutado
sed -i 's/Unix/GNU/g' ejemplo.txt
Reemplaza toda instancia de Unix por GNU en ejemplo.txt
sed -i.bak 's/Unix/GNU/g' ejemplo.txt
Creando un fichero de respaldo ejemplo.txt.bak y luego reemplaza toda instancia de Unix por GNU en ejemplo.txt.
sed 's/Susana/Moria/' ejemplo.txt
Reemplaza sólo la primer instancia de Susana por Moria en ejemplo.txt.
sed 's/Susana/Moria/g' ejemplo.txt
Reemplaza todas las instancias de Susana por Moria en ejemplo.txt.
sed '/Patrón antes de/i Esta línea' ejemplo.txt
Inserta la cadena Patrón antes de previa a la cadena Esta línea.
sed '/Patrón después/a Esta línea' ejemplo.txt
Agrega la cadena Patrṕn después posterior a la cadena Esta línea.
sed '/^$/d' ejemplo.txt
Borra todas las líneas en blanco de ejemplo.txt
sed '/^$/d' sample.txt > limpiado.txt
Borra todas las líneas en blanco de ejemplo.txt y lo guarda en limpiado.txt
sed '/Espacio en Blanco/c\Esta línea fue reemplazada' ejemplo.txt
Busca cualquier línea con la cadena Espacio en Blanco (sensible a mayúsculas) y la reemplaza con la cadena Esta línea fue reemplazada
sed -n '2,4p' ejemplo.txt
Presenta desde la línea 2 a la 4 inclusive de ejemplo.txt
sed '3d' ejemplo.txt
Elimina exactamente la línea 3 ejemplo.txt
sed -i 's/http:/https:/g' *.html
Busca toda instancia de la cadena http: en todos los ficheros .html y las reemplaza con la cadena https:, editando in situ (-i)
sed -i.bak 's/http:/https:/g' *.html
Busca toda instancia de la cadena http: en todos los ficheros .html y las reemplaza con la cadena https:, creando copias de respaldo .bak de los ficheros modificados
sed 's/^[ \t]*//;s/[ \t]*$//' ejemplo.txt
Elimina espacios y tabuladores en blanco al comienzo y al final de cada línea del fichero ejemplo.txt.

Ver también: Tutorial de sed

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información