comando sed

En GNU/Linux hay multitud de herramientas que ya vienen preinstaladas con el sistema y que no todos usan. Algunas de ellas son ciertamente desconocidas, en cambio, podrían hacer muchas cosas para facilitar nuestro trabajo diario. Hoy te presento al comando sed, no es una utilidad rara, de hecho es bien conocida. Pero tal vez no conocías todo lo que puede realizar este editor de flujo (de ahí su nombre Stream EDitor). Un potente programa heredado de Unix.

sed puede aceptar como entrada un fichero, lo leerá y modificará línea a línea de acuerdo a la orden dada. El resultado será mostrado por la salida estándar, es decir, por la pantalla en este caso. Así permite manipular flujos de datos para buscar, cortar, insertar o reempleazar líneas de texto haciendo uso de expresiones regulares. Quizás algunas funcionalidades te recuerden a otras herramientas como ed o ex.

Pero para que lo entiendas mejor, aquí tienes algunos buenos ejemplos prácticos de uso de sed. Los he dejado comentados para que sepas para qué sirve cada uno y agruparlos todos dentro del mismo recuadro:


#Ver las líneas de un fichero de texto de la 15 a la 17
sed -n 15,17p nombre.txt

#Mostrar todo el contenido excepto las líneas 10 a 14
sed 10,14d nombre.txt

#Mostrar cada 3º línea comenzando desde la 2
sed -n '2,3p' nombre.txt

#Eliminar la línea 4
sed 4d nombre.txt

#Eliminar la última línea, sea cual sea
sed $ d nombre.txt

#Eliminar un rango de líneas
sed '20 -34d ' nombre.txt
#Eliminar solo las lineas mencionadas
sed '29 -34! d ' nombre.txt

#Agregar una línea en blanco tras cada línea de texto
sed G nombre.txt

#Localizar "hola" y sustituirlo por "hello"
sed 's / hola / hello /' nombre.txt

#Sustituir palabra de una línea concreta
sed '4 s / peligro / seguridad /' nombre.txt

#Sustituir una línea donde se encuentre la palabra "adios" por otra línea escrita
sed '/ adios / c "Esta será la nueva línea"' nombre.txt

Espero haberte ayudado con este minitutorial de sed...