Resolver Problemas Consiga ayuda para problemas específicos con sus proyectos, procesos y tecnologías.
Este artículo es parte de nuestra guía: Guía Esencial: ¿Hacia dónde va el centro de datos?

Búsqueda y reemplazo en esteroides: Haga más con estos comandos SEd

Estos consejos ayudarán a los administradores a mejorar a su edición avanzada de texto con la utilidad UNIX Stream Editor (SEd).

Por encima, El UNIX Stream Editor (SEd) puede parecer solo un editor de texto de modales suaves. Pero debajo de esa calma exterior reside una musculosa funcionalidad, que ofrece capacidades avanzadas para ayudar a administrar los recursos de su centro de datos con solo pulsar unas teclas. Este artículo desbloqueará algunas de las funciones potentes en SEd.

El caso de SEd

Entonces, ¿por qué SEd? Los editores ordinarios como vi son capaces de hacer modificaciones a archivos de texto también. La diferencia es que sed es mucho más eficiente en el manejo de muchos archivos al mismo tiempo; la habilidad de filtrar el texto en un flujo se desconoce con otros editores. El comportamiento predeterminado de sed es caminar a través de sus archivos de entrada línea por línea, aplicar sus comandos a estas líneas y escribir el resultado en la salida estándar. Para llevar a cabo estos comandos, SEd utiliza expresiones regulares. Vamos a echar un vistazo a algunos ejemplos que se aplican al archivo users que puede ver en el Listado 1:

my-computer:~> cat users

lori:x:1006:100::/home/lori:/bin/bash

linda:x:1007:100::/home/linda:/bin/bash

lydia:x:1008:100::/home/lydia:/bin/bash

lisa:x:1009:100::/home/lisa:/bin/bash

leonora:x:1010:100:/home/leonora:/bin/bash

Listado 1

Para empezar, puede simplemente mostrar algunas líneas del archivo de ejemplo, como en el siguiente comando que muestra las dos primeras líneas y luego sale:

sed 2q users

Mucho más útil es el siguiente comando que imprime todas las líneas que contienen la cadena or:

sed -n /or/p users

En este ejemplo, considere -n una opción obligatoria que se sigue por la cadena de búsqueda or. Después de esta cadena, el comando p imprime el resultado. En este ejemplo, usted ha estado buscando la cadena or. SEd usa expresiones regulares, los poderosos patrones de búsqueda que puede utilizar en entornos Linux y UNIX, para hacer sus búsquedas más flexible. Algunos ejemplos en los que se utilizan expresiones regulares vienen a continuación:

sed -n /^or/p users: muestra todas las líneas que no contienen el texto or.

sed -n /./p users: muestra todas las líneas que contienen al menos un carácter.

sed -n /\./p users: muestra todas las líneas que contienen un punto.

Solo la impresión de líneas no es lo que hace tan poderosa a sed: usted puede también sustituir caracteres. La sintaxis se resume en el siguiente comando:

sed s/leo/lea/g users

Este comando reemplaza la cadena leo con la cadena lea y escribe los resultados en la salida estándar. Escribirlo en la salida estándar es muy seguro, pero no aplica ningún cambio en el archivo. Para realizar cambios, agregue la opción -i al comando:

sed -i s/leo/lea/g users

Los cambios se aplican inmediatamente, lo cual es útil si usted sabe lo que está haciendo. Si usted todavía se siente inestable con sed, envíe los resultados a la salida estándar primero para que pueda comprobarlo antes de escribirlo.

Usted puede desatar toda la potencia de sed a través de su funcionalidad de escritura de comandos shell. Por ejemplo, si usted tiene cuatro archivos, llamados file1, file2, file3 y file4 en el directorio actual y necesita reemplazar el texto one en cada archivo con el texto ONE. La siguiente línea de comandos realizaría esta tarea:

for i in file[1-4]; do sed -i s/one/ONE/g $i; done

Imagínese el poder de sed en un centro de datos: Por ejemplo, puede cambiar todos los archivos de configuración que contienen la ID de un dispositivo de almacenamiento que acaba de ser sustituido o puede modificar un archivo de plantilla para asegurarse de que el nombre de un servicio de marcador es reemplazado por el nombre real del servicio que está utilizando. Las posibilidades con sed son ilimitadas.

Sobre el autor: Sander van Vugt es un entrenador y consultor independiente que vive en los Países Bajos. Van Vugt es un experto en Linux de alta disponibilidad, virtualización y rendimiento, y ha completado varios proyectos que implementan los tres. Sander también es un ponente habitual en muchas conferencias de Linux de todo el mundo. Él es también el autor de varios libros relacionados con Linux, como Beginning the Linux Command Line, Beginning Ubuntu Server Administration y Pro Ubuntu Server Administration.

Este artículo se actualizó por última vez en mayo 2015

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Enviando esta solicitud usted acepta recibir correos electrónicos de TechTarget y sus socios. Si usted reside afuera de Estados Unidos, esta dando autorización para que transfiramos y procesemos su información personal en Estados Unidos.Privacidad

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close