Diferencia entre revisiones de «Sed (informática)»

Contenido eliminado Contenido añadido
Conopo (discusión · contribs.)
actualizada a la última versión
m PR:CW: Artículos sin lista de referencias; cambios superficiales
Línea 20:
}}
 
[[FileArchivo:SedDiagram.jpg|thumbminiaturadeimagen|250px|Esquema general del funcionamiento de sed]]
 
'''sed''' ('''''s'''tream '''ed'''itor'') es un editor de flujo, una potente herramienta de tratamiento de texto para el [[sistema operativo]] [[Unix]] que acepta como entrada un archivo, lo lee y modifica línea a línea de acuerdo a un [[Script (informática)|script]], mostrando el resultado por [[Entrada estándar#Salida estándar|salida estándar]] (normalmente en pantalla, a menos que se realice una redirección). Sed permite manipular flujos de datos, como por ejemplo cortar líneas, buscar y reemplazar texto (con soporte de [[expresiones regulares]]), entre otras cosas. Posee muchas características de [[Ed (Unix)|ed]] y [[Ex (editor de texto)|ex]].
 
Como lenguaje de programación es [[Turing completo]]. Provee instrucciones para realizar saltos condicionales e incondicionales a cualquier posición del script o al final del mismo. Análogas a [[GOTO]], permiten la programación no estructurada.
Línea 35:
donde:
 
* '''-n''' indica que se suprima la salida estándar.
* '''-e''' indica que se ejecute el script que viene a continuación. Si no se emplea la opción '''-f''' se puede omitir '''-e'''.
* '''-f''' indica que las órdenes se tomarán de un archivo
 
Un script consiste en una o varias órdenes del editor (uno por línea o separados por ";") con la siguiente estructura:
Línea 45:
donde inicio y fin hacen referencia a las líneas (número de línea) afectadas (o intervalo de líneas); función hace referencia a la orden de editor a aplicar y argumentos hace referencia a los argumentos necesarios para la ejecución de la función.
Para expresar las órdenes en varias líneas es posible utilizar comillas o apóstrofos, u opcionalmente añadir el carácter barra invertida <nowiki>"\"</nowiki> antes de pulsar [[Entrar_Entrar (tecla)|Intro]].
 
== Ejemplos de uso ==
Línea 94:
* <code>a\</code>: Tras terminar el ciclo de procesamiento del script sobre la línea actual, añade la línea especificada a continuación.
* <code>c\</code>: Sustituye la línea actual por la especificada a continuación.
* <code>d</code>: Borra la línea actual.
* <code>i\</code>: Similar a '''a\''', pero es insertada inmediatamente (sin esperar a finalizar el ciclo).
* <code>p</code>: Imprime la línea actual, inclusive cuando se utiliza la opción -n.
* <code>q</code>: Abandona el proceso cuando se alcanza la línea especificada.
* <code>r archivo</code>: Lee un archivo, añadiendo su contenido a la salida.
* <code>w archivo</code>: Copia la línea en archivo.
* <code>=</code>: Imprime el número de línea.
* <code>!orden</code>: Aplica la orden si la condición previa al signo de admiración, no selecciona la línea actual.
 
== Véase también ==
* [[awk]]
 
== Referencias ==
{{listaref}}
 
== Enlaces externos ==
* {{man|1|sed|FreeBSD}}
* [http://www.opengroup.org/onlinepubs/9699919799/utilities/sed.html sed] - Especificación de sed en el estándar IEEE Std 1003.1-2008.
* [http://www.gnu.org/software/sed/manual/sed.html Manual de sed (en inglés)]
 
[[Categoría:Software para Unix]]