Diferencia entre revisiones de «Sed (software)»
m (Sed (informática) trasladada a Sed (software)) |
|||
| Línea 1: | Línea 1: | ||
| − | + | {{otros usos|Sed_(desambiguación)}} | |
{{Ficha Software | {{Ficha Software | ||
| Línea 15: | Línea 15: | ||
}} | }} | ||
'''Sed'''. 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 [[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]]. | '''Sed'''. 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 [[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]]. | ||
| + | |||
| + | 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. | ||
| + | |||
| + | == Sintaxis == | ||
| + | |||
| + | La sintaxis general de la orden sed es: | ||
| + | |||
| + | 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 los ó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: | ||
| + | |||
| + | 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_(tecla)|Intro]]. | ||
| + | |||
| + | == Ejemplos de uso == | ||
| + | |||
| + | Cambia todas las minúsculas a mayúsculas de archivo: | ||
| + | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' archivo | ||
| + | |||
| + | Borra la 3ª línea de archivo: | ||
| + | sed '3d' archivo | ||
| + | |||
| + | Añade una línea con el contenido "Línea insertada" después de cada línea del archivo: | ||
| + | sed 'a\ | ||
| + | Línea insertada' archivo | ||
| + | |||
| + | Elimina todas las secuencias de Escape del tipo Xm y Zm que se suelen usar para letras en negrita, etc. para vt100 y cambia el formato de los saltos de línea, de un archivo almacenando los resultados en un archivo nuevo ('''^[''' representa al caracter de escape, ingresable por medio de control V + escape, y '''^M''' representa al caracter de [[retorno de carro]]): | ||
| + | sed 's/'''^['''\[[0-9]*m//g | ||
| + | s/'''^['''\[[0-9]*w//g | ||
| + | s/'''^M'''/\ | ||
| + | /g' archivo > archivo.nuevo | ||
| + | |||
| + | Determina si un número natural mayor o igual a 2, es primo: | ||
| + | |||
| + | echo 42 | sed -e 's/[0-9]/|0123456789n&/g; s/\(.\)[^n]*n\1//g | ||
| + | :mult; s/[0-9]|/|0000000000/g; /[0-9]|/bmult | ||
| + | s/[1-9]/0/g; s/|*/00|/; h | ||
| + | :siguiente; s/\(0*\)|\1/|/; /|$/{s/.*/es primo/;q}; g | ||
| + | :restar; s/^\(0*\)|\1/\1|/; trestar | ||
| + | /|$/{ s/.*/no es primo/; q } | ||
| + | g; s/^/0/; h | ||
| + | bsiguiente' | ||
| + | |||
| + | == Órdenes usuales de sed == | ||
| + | |||
| + | * <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. | ||
| + | |||
| + | ==Fuentes == | ||
| + | *[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)] | ||
| + | *[http://programacionbizarra.blogspot.com/2009/03/presentacion-del-sed-copyright-c-2009.html Presentación del sed por Héctor Francisco Hernández] | ||
| + | |||
| + | [[Category:Aplicaciones_informáticas]] | ||
| + | [[Category:Ciencias_informáticas]] | ||
| + | [[Category:Software_Libre]] | ||
| + | [[Category:Programación]]{{otros usos|Sed (desambiguación)}} | ||
| + | |||
| + | {{Ficha Software | ||
| + | |nombre=Sed | ||
| + | |imagen= | ||
| + | |descripción=Sed es un editor de flujo que acepta como entrada un archivo, lo lee y modifica línea a línea de acuerdo a un script. | ||
| + | |creador=Lee E. McMahon | ||
| + | |fecha de creación=[[1973]] | ||
| + | |versiones=sed, GNU sed, busybox sed, psed, HHsed, super sed, sedmod, ssed. | ||
| + | |sistemas operativos=[[Multiplataforma]] | ||
| + | |idioma= | ||
| + | |licencia= | ||
| + | |premios= | ||
| + | |web= | ||
| + | }} | ||
| + | |||
| + | |||
| + | '''Sed''' 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 [[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]]. | ||
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. | 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 42: | Línea 128: | ||
Cambia todas las minúsculas a mayúsculas de archivo: | Cambia todas las minúsculas a mayúsculas de archivo: | ||
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' archivo | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' archivo | ||
| − | |||
Borra la 3ª línea de archivo: | Borra la 3ª línea de archivo: | ||
sed '3d' archivo | sed '3d' archivo | ||
| − | |||
Añade una línea con el contenido "Línea insertada" después de cada línea del archivo: | Añade una línea con el contenido "Línea insertada" después de cada línea del archivo: | ||
sed 'a\ | sed 'a\ | ||
Línea insertada' archivo | Línea insertada' archivo | ||
| − | |||
Elimina todas las secuencias de Escape del tipo Xm y Zm que se suelen usar para letras en negrita, etc. para vt100 y cambia el formato de los saltos de línea, de un archivo almacenando los resultados en un archivo nuevo ('''^[''' representa al caracter de escape, ingresable por medio de control V + escape, y '''^M''' representa al caracter de [[retorno de carro]]): | Elimina todas las secuencias de Escape del tipo Xm y Zm que se suelen usar para letras en negrita, etc. para vt100 y cambia el formato de los saltos de línea, de un archivo almacenando los resultados en un archivo nuevo ('''^[''' representa al caracter de escape, ingresable por medio de control V + escape, y '''^M''' representa al caracter de [[retorno de carro]]): | ||
| Línea 58: | Línea 141: | ||
s/'''^M'''/\ | s/'''^M'''/\ | ||
/g' archivo > archivo.nuevo | /g' archivo > archivo.nuevo | ||
| − | |||
Determina si un número natural mayor o igual a 2, es primo: | Determina si un número natural mayor o igual a 2, es primo: | ||
| Línea 84: | Línea 166: | ||
* <code>!orden</code>: Aplica la orden si la condición previa al signo de admiración, no selecciona la línea actual. | * <code>!orden</code>: Aplica la orden si la condición previa al signo de admiración, no selecciona la línea actual. | ||
| − | ==Fuentes == | + | == Véase también == |
| + | *[[awk]] | ||
| + | |||
| + | == Fuentes == | ||
*[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.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)] | *[http://www.gnu.org/software/sed/manual/sed.html Manual de sed (en inglés)] | ||
Revisión del 14:42 19 sep 2011
| ||||||||||
Sed. 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, mostrando el resultado por 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 y 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.
Sumario
Sintaxis
La sintaxis general de la orden sed es:
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 los ó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:
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 "\" antes de pulsar Intro.
Ejemplos de uso
Cambia todas las minúsculas a mayúsculas de archivo:
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' archivo
Borra la 3ª línea de archivo:
sed '3d' archivo
Añade una línea con el contenido "Línea insertada" después de cada línea del archivo:
sed 'a\ Línea insertada' archivo
Elimina todas las secuencias de Escape del tipo Xm y Zm que se suelen usar para letras en negrita, etc. para vt100 y cambia el formato de los saltos de línea, de un archivo almacenando los resultados en un archivo nuevo (^[ representa al caracter de escape, ingresable por medio de control V + escape, y ^M representa al caracter de retorno de carro):
sed 's/^[\[[0-9]*m//g
s/^[\[[0-9]*w//g
s/^M/\
/g' archivo > archivo.nuevo
Determina si un número natural mayor o igual a 2, es primo:
echo 42 | sed -e 's/[0-9]/|0123456789n&/g; s/\(.\)[^n]*n\1//g
:mult; s/[0-9]|/|0000000000/g; /[0-9]|/bmult
s/[1-9]/0/g; s/|*/00|/; h
:siguiente; s/\(0*\)|\1/|/; /|$/{s/.*/es primo/;q}; g
:restar; s/^\(0*\)|\1/\1|/; trestar
/|$/{ s/.*/no es primo/; q }
g; s/^/0/; h
bsiguiente'
Órdenes usuales de sed
a\: Tras terminar el ciclo de procesamiento del script sobre la línea actual, añade la línea especificada a continuación.c\: Sustituye la línea actual por la especificada a continuación.d: Borra la línea actual.i\: Similar a a\, pero es insertada inmediatamente (sin esperar a finalizar el ciclo).p: Imprime la línea actual, inclusive cuando se utiliza la opción -n.q: Abandona el proceso cuando se alcanza la línea especificada.r archivo: Lee un archivo, añadiendo su contenido a la salida.w archivo: Copia la línea en archivo.=: Imprime el número de línea.!orden: Aplica la orden si la condición previa al signo de admiración, no selecciona la línea actual.
Fuentes
- sed - Especificación de sed en el estándar IEEE Std 1003.1-2008.
- Manual de sed (en inglés)
- Presentación del sed por Héctor Francisco Hernández
| ||||||||||
Sed 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, mostrando el resultado por 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 y 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.
Sintaxis
La sintaxis general de la orden sed es:
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 los ó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:
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 "\" antes de pulsar Intro.
Ejemplos de uso
Cambia todas las minúsculas a mayúsculas de archivo:
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' archivo
Borra la 3ª línea de archivo:
sed '3d' archivo
Añade una línea con el contenido "Línea insertada" después de cada línea del archivo:
sed 'a\ Línea insertada' archivo
Elimina todas las secuencias de Escape del tipo Xm y Zm que se suelen usar para letras en negrita, etc. para vt100 y cambia el formato de los saltos de línea, de un archivo almacenando los resultados en un archivo nuevo (^[ representa al caracter de escape, ingresable por medio de control V + escape, y ^M representa al caracter de retorno de carro):
sed 's/^[\[[0-9]*m//g
s/^[\[[0-9]*w//g
s/^M/\
/g' archivo > archivo.nuevo
Determina si un número natural mayor o igual a 2, es primo:
echo 42 | sed -e 's/[0-9]/|0123456789n&/g; s/\(.\)[^n]*n\1//g
:mult; s/[0-9]|/|0000000000/g; /[0-9]|/bmult
s/[1-9]/0/g; s/|*/00|/; h
:siguiente; s/\(0*\)|\1/|/; /|$/{s/.*/es primo/;q}; g
:restar; s/^\(0*\)|\1/\1|/; trestar
/|$/{ s/.*/no es primo/; q }
g; s/^/0/; h
bsiguiente'
Órdenes usuales de sed
a\: Tras terminar el ciclo de procesamiento del script sobre la línea actual, añade la línea especificada a continuación.c\: Sustituye la línea actual por la especificada a continuación.d: Borra la línea actual.i\: Similar a a\, pero es insertada inmediatamente (sin esperar a finalizar el ciclo).p: Imprime la línea actual, inclusive cuando se utiliza la opción -n.q: Abandona el proceso cuando se alcanza la línea especificada.r archivo: Lee un archivo, añadiendo su contenido a la salida.w archivo: Copia la línea en archivo.=: Imprime el número de línea.!orden: Aplica la orden si la condición previa al signo de admiración, no selecciona la línea actual.
Véase también
Fuentes
- sed - Especificación de sed en el estándar IEEE Std 1003.1-2008.
- Manual de sed (en inglés)
- Presentación del sed por Héctor Francisco Hernández