Comandos más utilizados
Imprimir una línea (o un rango de líneas)
p
Para imprimir únicamente úna línea o un rango de línea se utiliza el comando p, pero este comando solo debe utilizarse con el comando -n, con el cual se deshabilita la salida estándar. En caso de no utilizar -n la salida no será lo que esperamos.
Para este ejemplo vamos a realizar un archivo de texto de nombre ejemplo1.txt cuyo contenido será:
archivo de ejemplo linea 1
archivo de ejemplo linea 2
archivo de ejemplo linea 3
Ejemplo para imprimir únicamente la línea 2:
$ sed -n 2p ejemplo1.txt
archivo de ejemplo linea 2
Recuerda que el número 2 le dice la ubicacion donde tiene que ejecutar la instrucción, por lo que para imprimir la líneas 2 y 3 el comando apropiado es:
$ sed -n 2,3p ejemplo1.txt
archivo de ejemplo linea 2
archivo de ejemplo linea 3
Eliminar una línea
d
Utilizando el mismo ejemplo del comando anterior, para quitar la línea dos utilizaríamos la instrucción:
$ sed 2d ejemplo1.txt
archivo de ejemplo linea 1
archivo de ejemplo linea 3
También podríamos eliminar la línea dos y tres con la siguiente instruccion:
$ sed 2,3d ejemplo1.txt
archivo de ejemplo linea 1
Reemplazar
s/expresion regular/remplazo/parametros
Donde expresion regular es una cadena de texto o una expresión indicando el texto o patrón que se cambiará, reemplazo es lo que se escribirá en lugar de la cadena anterior y parametros puede estar en blanco o ser un número indicando las veces que se aplicará el reemplazo o g para que lo aplique de forma global, es decir en todas las ocurrencias.
Ejemplo utilizando pipes para reemplazar el texto mundo por el texto planeta tierra en un comando echo:
$ echo hola mundo |sed "s/mundo/planeta tierra/"
hola planeta tierra
Este comando nos puede ser útil también para escribir un texto al principio al final de la línea, para lo cual utilizaremos las expresiones regulares ^ para indicar el comienzo de la línea y $ para indicar el final de la línea.
Ejemplos:
$ echo mundo |sed "s/^/hola /"
hola mundo