El editor en línea Sed

Hacker

Sed es un editor de emisiones (stream editor en inglés) usado para procesar texto en archivos que fue desarrollado por Lee E. McMahon de los Laboratios Bell (Bell Labs) entre 1973 y 1974. Sed utiliza un lenguaje de programación para realizar transformaciones en una emisión de datos leyendo línea por línea de estos. Es muy funcional para realizar labores masivas o ediciones en bloque a archivos de texto, si el archivo de texto es de un tamaño considerablemente grande, la velocidad de edición de sed es sumamente conveniente.

Si quisieramos escribir la salida en un archivo tendríamos que utilizar el direccionamiento > para que la salida estándar sea escrita en el archivo que le indiquemos.

Expresiones regulares

Estas son las expresiones regulares más usadas para poder usar con nuestros scripts:

c 	Un carácter simple, si no es espcial es comparado con el texto
* 	Una secuencia de 0 o más repeticiones
\+ 	Como * de 1 o más
\? 	Como * solo para 0 ó 1
\{i\} 	Como * solo cuando coincide exactamente i ocurrencias
\{i,j\} 	Entre i y j secuencias
\{i,\} 	Más o igual que i secuencias
\{,j\} 	Menos o igual que j secuencias
[lista] 	Cualquier carácter en la lista
[^lista] 	Cualquier carácter que no esté en la lista

Mostrando datos

Mostramos las líneas donde aparezca la palabra "Coliflor":


sed '/coliflor/!d' mi_fichero.txt

Mostramos las líneas donde no aparezca la palabra "Coliflor":


sed '/coliflor/d' mi_fichero.txt

Mostramos la línea número 2 de un fichero:


$ sed -n 2p fichero.txt

Mostramos la línea número 2 y la número 3 de un fichero:


$ sed -n 2,3p fichero.txt

Interactuando con los datos

Añadir un espacio entre las líneas del fichero:


sed G fichero.txt

Añadir 3 espacios entre las líneas del fichero:


sed 'G;G;G;' fichero.txt

Reemplazo y manipulación de los datos

Para reemplazar, usaremos la siguiente estructura: s/cadena1/cadena2/parametros. Los parámetros pueden ser un número, es decir, el número de veces que queremos que una cadena sea reemplazada, o puede ser g (global) para hacerlo en todo el documento.

Reemplazar la palabra "coliflor" por "mermelada":


sed "s/coliflor/mermelada/" fichero.txt

Reemplazar la palabra "coliflor" por "mermelada" en un comando que le decimos primero desde la línea de comando y lo pasamos a través de un pipe:


$ echo me gusta mucho la coliflor |sed "s/coliflor/mermelada/"

Si queremos añadir la palabra "coliflor" al principio del fichero:


$ sed "s/^/coliflor/" fichero.txt

Eliminación y filtrado de datos

Eliminar líneas vacías


sed '/^$/d' mi_fichero.txt

Eliminar líneas que contengan la palabra "Coliflor":


$ sed '/Coliflor/d' mi_fichero.txt

Eliminar la línea número 2 de un fichero:


$ sed 2d mi_fichero.txt

Enlaces de interés

Página de Sed en la Wikipedia:
http://es.wikipedia.org/wiki/Sed_%28inform%C3%A1tica%29

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.

Utilitats

NAVEGACIÓ SENSE RATOLÍ

- Tab següent enllaç.
- Shift+Tab anterior enllaç.
- Enter activa l'enllaç.
- Alt+esquerra anar arrere.

CONTRAST DE COLORS

Accessibilitat - Color Negre
Accessibilitat - Color Groc
Accessibilitat - Color Verd

Accessibilitat - Color Blau
Accessibilitat - Color Crema
Accessibilitat - Color Blanc

 

PORTADES ALTERNATIVES