Índice del artículo

Comandos más utilizados

Imprimir una línea (o un rango de líneas)

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

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