Ir al contenido principal

Introduccion a sed

Hola amig@s de T! bueno hoy voy a compartir con ustedes una pequeña guia introductoria para aprender a usar SED

Ok empecemos..!


Introduccion a SED



Acerca de sed.

Sed es un editor de emisiones (stream editor) utilizado para el procesamiento de texto archivos. Utiliza un lenguaje de programación para realizar transformaciones en una emisión datos leyendo línea por línea de estos. Fue desarrollado entre 1973 y 1974 por Lee E. McMahon Bell Labs. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones GNU/Linux.

Procedimientos.

A continuación les mostrare ejemplos del uso de sed.

Utilizaremos vi o nano (u otro editor) para crear el archivo usuario.txt:


vi usuario.txt


Ingresaremos el siguiente contenido al archivo usuario.txt:


Fulano Algo
Calle Mengana 123
Colonia Perengana
Ciudad de Zutano, C.P. 123456


Si utilizamos el comando cat sobre el archivo, visualizaremos tal cual el contenido de usuario.txt como fue ingresado en el editor de texto.


cat usuario.txt


Si queremos convertir a doble espacio la salida del archivo usuario.txt, utilizaremos el siguente comando:


sed G usuario.txt


El comando anterior mostrara lo siguiente:


Fulano Algo

Calle Mengana 123

Colonia Perengana

Ciudad de Zutano, C.P. 123456



Para guardar la salida anterior en el archivo usuario2.txt, utilizaremos el siguiente comando:


sed G usuario.txt > usuario2.txt


Si queremos convertir a doble espacio la salida del archivo usuario.txt, utilizaremos el siguiente comando:


sed 'G;G' usuario.txt


La salida anterior devolvera lo siguiente:


Fulano Algo


Calle Mengana 123


Colonia Perengana


Ciudad de Zutano, C.P. 123456




Para guardar la salida anterior en el archivo usuario3.txt, utilizaremos el siguiente comando:


sed 'G;G' usuario.txt > usuario3.txt


El contenido de usuario3.txt tendra triple espacio de separacion. Si deseamos convertir un archivo a doble espacio, pero que no haya mas de una linea vacia entre cada linea con datos, se utiliza lo siguiente:


sed '/^$/d;G' usuario3.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo

Calle Mengana 123

Colonia Perengana

Ciudad de Zutano, C.P. 123456



Si deseamos eliminar el doble espacio del archivo usuario2.txt, utilizaremos el siguiente comando:


sed 'n;d' usuario2.txt


La salida anterior mostrara lo siguiente:


Fulano Algo
Calle Mengana 123
Colonia Perengana
Ciudad de Zutano, C.P. 123456


Si deseamos agregar una linea en blanco arriba de toda linea que contenga la expresion regular enga, utilizaremos lo siguiente:


sed '/enga/{x;p;x;}' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo

Calle Mengana 123

Colonia Perengana
Ciudad de Zutano, C.P. 123456


Si queremos agregar una linea en blanco debajo de toda linea que contenga el expresion regular 3, utilizaremos el siguiente comando:


sed '/3/G' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo
Calle Mengana 123

Colonia Perengana
Ciudad de Zutano, C.P. 123456



Si queremos agregar una linea en blanco arriba y debajo de toda linea que contenga la exprecion regular 3, utilizaremos el siguiente comando:


sed '/3/{x;p;x;G;}' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo

Calle Mengana 123

Colonia Perengana

Ciudad de Zutano, C.P. 123456



Para reemplazar texto se utiliza el modelo 's/texto/nuevo-texto/' donde texto puede ser tambien una expresion regular. En el siguiente ejemplo se reemplazaran las incidencias del numero 3 por el numero 9:


sed 's/3/9/g' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo
Calle Mengana 129
Colonia Perengana
Ciudad de Zutano, C.P. 129456


Con el siguiente ejemplo se reemplazaran los espacios por los tabuladores a todo lo largo de todas las lineas:


sed 's/ /t/g' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano    Algo
Calle    Mengana    123
Colonia    Perengana
Ciudad    de    Zutano,    C.P.    123456


Con el siguiente ejemplo reemplazaremos solo el primer espacio de cada linea por un tabulador:


sed 's/ /t/' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano    Algo
Calle    Mengana 123
Colonia    Perengana
Ciudad    de Zutano, C.P. 123456


La siguiente linea añade 5 espacios al inicio de cada linea:


sed 's/^/      /' usuario.txt


La salida del comando anterior mostrara lo siguiente:


      Fulano Algo
      Calle Mengana 123
      Colonia Perengana
      Ciudad de Zutano, C.P. 123456


El siguiente comando solo mostrara la primera linea del archivo usuario.txt:


sed q usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo


El siguiente comando solo mostrara las primeras 2 lineas del archivo usuario.txt:


sed 2q usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo
Calle Mengana 123


El siguiente comando nos mostrara las ultimas 3 lineas del archivo usuario.txt:


sed -e :a -e '$q;N;4,$D;ba' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Calle Mengana 123
Colonia Perengana
Ciudad de Zutano, C.P. 123456


El siguiente comando nos mostrara las lineas que incluyen 3:


sed '/3/!d' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Calle Mengana 123
Ciudad de Zutano, C.P. 123456


El siguiente comando nos mostrara las lineas que no incluyen 3:


sed '/3/d' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo
Colonia Perengana


El siguiente comando nos mostrara la linea que esta despues de la expresion Fulano, pero no mostrara la linea que incluye Fulano:


sed -n '/Fulano/{n;p;}' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Calle Mengana 123


El siguiente comando nos mostrara la linea que esta antes de la expresion Calle, pero no mostrara la linea que incluye Calle:


sed -n '/Calle/{g;1!p;};h' usuario.txt


La salida del comando anterior mostrara lo siguiente:


Fulano Algo


Aclaracion: Toda la informacion que cito en los post "Introduccion a sed" y "Introduccion a AWK" la he obtenido del siguiente libro:
Administracion de Servidores pdf

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Rootear en Ubuntu un teléfono Android

Tengo un teléfono con Android, concretamente un Motorola Defy, y resulta que en Android, basado en Linux, eres un simple usuario y solo puedes realizar algunas tareas. Otras te están vetadas. Conseguir los permisos de superusuario, se llama entre los entendidos rootear el móvil. En principio es una operación que no entraña riesgos, pero en esta vida todo puede fallar. Así que debe quedar claro que si decides rootear el teléfono, lo haces bajo tu propia responsabilidad. También debes entender, que si rooteas el teléfono, los SAT aprovechan para lavarse las manos de cualquier problema y anular la garantía. Y por último, debes saber que es posible que ya no recibas las actualizaciones automáticas de Android. Para rootear teléfonos se utiliza una aplicación llamada Superoneclick . En mi caso, esta parece ser la única solución. Pero este es un programa para Windows, por lo que.... Afortunadamente, esta escrito en .NET, por lo que vamos a poder ejecutarlo con MONO en nuestro ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...