Comando SED¶
- SED (Stream Editor): Es un editor de texto en línea.
Ejemplos.¶
Selecciona las líneas donde encuentra la coincidencia “ubuntu”:¶
sed -n '/ubuntu/'p /etc/passwd
Selecciona la línea 1 (Fíjate que al ser una línea no lleva barras):¶
sed -n '1'p /etc/passwd
Seleccionar de la línea 5 a la 7:¶
sed -n '5,7'p /etc/passwd
Seleccionar la última línea:¶
Muestra la última línea del fichero.
La opción -n hace que no imprima el resto del fichero y la opción "p" que imprima la selección, en este caso la última línea.
sed -n '$'p /etc/passwd
Selecciona desde que detecta el patrón hasta el final del fichero:¶
El $ sin barras (//) hace referencia a la última línea.

Eliminar Coincidencias.¶
Elimina la primera línea:¶

Sustituir elementos.¶
Ejemplo: Sustituye los patrones salva por Mr. Salva.¶
sed s'/salva/Mr. Salva/'g lista.txt
Ejemplo: Cuando encuentra un guión borra el resto de la línea.¶
Se elimina cualquier cosa (.*) que encuentre después de un guión.
La salida del ejemplo sería "HOLA".
echo "HOLA - QUÉ TAL???" | sed s'/-.*//'g
Ejemplo: Borra los comentarios.¶
El ".*" es una expresión regular que indica cualquier cadena de texto.
Por tanto se sustituye cualquier cadena de texto precedida de un # por una cadena vacía, de ahí las dos barras //.
sed s'/#.*//'g ejemplos.txt
Anidar varios comandos sed.¶
Ejemplo: Añade ":" tras cada letra minúscula encontrada, posteriormente al final de línea borra los últimos ":".¶
- Importante que el carácter especial “&” hace referencia a lo sustituido en el patrón 1.

Cambiar el contenido de un fichero.¶
-
Todos estos ejemplos NO cambian el fichero en sí, solo muestran la salida de cómo quedaría.
-
Para cambiar el contenido usaremos la opción -i.
Reemplazamos en el fichero las cadenas de texto salva por Salvador.¶
Recordad que si no usamos la opción -i nos muestra por pantalla como quedaría el fichero, pero NO lo cambia.
sed -i s'/salva/Salvador/'g ejemplos.txt