1.10.3.- Uso de sed

El comando sed modifica directamente el contenido de los ficheros, enviando el fichero modificado a la salida estándar. Su sintaxis puede adoptar una de estas dos formas:

sed [opciones] -f fichero-script [fichero-entrada]

sed [opciones] texto-script[fichero-entrada]

En ambos casos, fichero-entrada es el nombre del fichero que desea modificar (las modificaciones serán temporales a menos que las guarde de algún modo, como veremos en breve). El script (texto-script o el contenido de fichero-script) es el conjunto de comandos que desea que ejecute sed. Cuando le pase un script directamente por la línea de comandos, el texto-script se suele rodear con comillas simples. La siguiente tabla muestra algunos comandos de sed que podemos emplear en los scripts.

Ejemplo_sed1
La columna de direcciones de la tabla precisa un comentario: los comandos sed operan sobre direcciones, que son números de línea. Los comandos pueden no recibir direcciones, en cuyo caso operan sobre el fichero completo, recibir una dirección, en cuyo caso operan sobre la línea especificada; o recibir dos direcciones (un rango), en cuyo caso operan sobre dicho rango de líneas, ambas inclusive.

Para este ejemplo, primero vamos a generar un archivo de texto con el resultado del calendario para el año 2012 con el nombre de cal-2012.txt.

Ejemplo_sed_1
El aspecto que presenta sed es el siguiente:

Ejemplo_sed2

Este comando procesa el fichero de entrada, cal-2012.txt, empleando el comando s de sed para reemplazar la primera aparición de 2012 en cada línea por 2013 (si en la misma línea hay mas de una instancia de la cadena a buscar debe realizar una búsqueda global añadiendo g a la cadena de comandos, como en s/2012/2013/g). Por defecto, sed envía el fichero modificado a la salida estándar, por lo que este ejemplo emplea la redirección para enviar la salida a cal-2013.txt. La idea del ejemplo es convertir rápidamente un fichero creado para el año 2012 para que se pueda utilizar en 2013. Si no especifica un fichero de entrada, sed trabajará con la entrada estándar, por lo que puede aceptar como entrada la salida de otro comando.

Aunque en su concepto es simple, sed es una herramienta muy compleja; incluso un modesto resumen de sus capacidades ocuparía todo un capítulo. Podemos consultar su página man para obtener una información básica, pero para entender del todo sed, es preferible que consulte algún libro sobre la materia.

NOTA: Algunos comandos de sed, como el comando de sustitución, también se emplean en Vi, que describiremos más adelante.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s