Entendiendo el comando sed III

En los capítulos anteriores les presentaba el comando sed y les explicaba algunos ejemplos para comprender sobre que líneas tienen efecto los comandos aplicados. Hoy les comentaré las funciones que permite sed.

Entre las funciones más utilizadas por sed se encuentran las que permiten borrar líneas (d de delete), las de sustitución (s de substitute), imprimir líneas (p de print) o las que permiten leer líneas (r de read).

El siguiente ejemplo imprimirá por pantalla el rango de líneas que comprende desde la primera a la quinta:

 sed -e 1,5p fichero_datos

El siguiente ejemplo borrará el rango de líneas comprendido entre la tercera y la quinta y desde la décima en adelante:

 sed -e '3,5d' -e '10,$d' fichero_datos

En el anterior capítulo os comentaba el uso del carácter exclamación. Si no queremos escaparlo con el carácter ( \ ) podremos delimitar los comandos aplicados por sed por comillas simples ( ' ):

 sed -e '/^$/!d' dias
sed -e /^$/\!d dias

Hasta ahora hemos visto, los borrados y las impresiones. Una de las funciones más típicas que nos permite sed, es la que consiste en sustitución de patrones.

 sed 's/suspenso/aprobado/'

El anterior comando sustituye la primera aparición de "suspenso" por la cadena "aprobado" en cada línea donde se encuentre "suspenso". Si queremos que se cambien todas las apariciones de "suspenso" en todas las líneas, tendremos que usar el flag ( g ).

 sed 's/suspenso/aprobado/g'

El siguiente ejemplo, remplazará el carácter "é" por la cadena "é", excepto en las líneas que van desde la 1 a la 3:

 sed -e '1,3!s/e/´/' fichero_datos

Si quisieramos que la sustitución solo se hiciera entre las líneas 1 y 3, deberíamos quitar la exclamación ( ! ).

Por último un ejemplo bastante interesante. Si quisieramos añadir el contenido de un fichero, cada vez que encontrasemos una combinación de caracteres, podríamos utilizar el siguiente comando:

 sed '/cadena/r fichero_carga' fichero_datos




stumbleupondeliciousredditTechnoratiFacebookTwitter