Sed (informática)
![]() sed (stream editor) 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. HistoriaEl comando sed, una de las utilidades Unix pioneras en el proceso de archivos de datos desde línea de comandos, surge en la versión 7 de Unix y evoluciona como sucesor natural del popular comando grep.[2] La motivación original consistía en crear un comando análogo de grep (g/re/p) para sustituir (g/re/s).Al prever la aparición de programas especializados para cada comando —como g/re/d—, McMahon escribe un editor de flujo de propósito general orientado a líneas que acaba por convertirse en sed.[2] La sintaxis sed, en concreto, la barra inclinada SintaxisLa sintaxis general de la orden sed es: $ sed [-n] [-e'script'] [-f archivo] archivo1 archivo2 ...
donde:
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 usoCambia 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 carácter de escape, ingresable por medio de control V + escape, y ^M representa al carácter 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
Véase tambiénReferencias
Enlaces externos
|
Portal di Ensiklopedia Dunia