Jul 092014
 

El editor sed («Stream EDitor») es una potente herramienta disponible en la mayoría de las distribuciones linux.

El uso más habitual de sed es para realizar una modificación sobre todas las líneas de un fichero. Por ejemplo, el siguiente comando crea un fichero «texto-modificado.txt» a partir de un fichero «texto-original.txt», en el que se sustituye la palabra «hola» por «adios» cada vez que aparece en el texto original:

Pero en ocasiones, nos interesa que sólo un determinado rango de líneas sea modificado. En sed, hay muchas maneras de especificar el rango de líneas sobre el cual queremos que se apliquen los cambios.

Ejemplo 1 – Modificar sólo la tercera línea del fichero

Como vemos, para modificar una única línea basta con poner delante del comando a ejecutar el número de línea sobre el que debe ejecutarse

Ejemplo 2 – Modificar el rango de líneas entre la tercera y la quinta

En este ejemplo, estamos especificando un rango de líneas sobre las cuales debe ejecutarse el comando.

Ejemplo 3 – Modificar sólamente las líneas que contienen la palabra ‘nuevo’

En este ejemplo, se utiliza una expresión regular que precede al comando a ejecutar. El comando sólo se ejecutará sobre las líneas que cumplan con la expresión regular.

Ejemplo 4 – Modificar sólamente las líneas que NO contienen la palabra ‘nuevo’

Como vemos, se puede colocar el operador «!» a continuación de un rango, para indicar que el rango se refiere a las líneas que NO deben ser procesadas.

Ejemplo 5 – Modificar todas las líneas menos la primera

En este ejemplo, el rango especificado comienza en la segunda línea, y termina en la última (representada por el carácter «$»)

También podríamos haber utilizado el carácter «!» para excluir a la primera línea, y procesar todas la demás:

Ejemplo 6 – Modificar todas las líneas menos la última

En este ejemplo, utilizamos el carácter «$» para representar la última línea del fichero, y el operador «!» para excluir del proceso el rango especificado.

 Publicado por en 8:50 am

 Deja un comentario

(requerido)

(requerido)