Una de las mejores cosas del sistema operativo Linux es que está repleto de utilidades. De hecho, existen tantas utilidades diferentes que conocerlas y comprenderlas todas es casi imposible. Se sed es una utilidad que puede hacer la vida más fácil en situaciones clave. Es una de las herramientas más poderosas en la caja de herramientas de cualquier gerente y puede resultar invaluable en una crisis.
La utilidad sed es un «editor», pero es diferente de la mayoría de los demás. No solo no está orientado a la pantalla, sino que tampoco es interactivo. Esto significa que debe incluir comandos para ejecutar en los datos en la línea de comando o en un script para procesar. Cuando lo vea, olvídese de la capacidad de editar archivos de forma interactiva como lo haría con Microsoft Word o la mayoría de los otros editores. sed acepta un conjunto de comandos y los ejecuta en un archivo (o conjunto de archivos) de forma no interactiva y sin cuestionamientos. Como tal, fluye a través del texto como el agua fluye a través de un arroyo y, por lo tanto, sed en realidad significa editor de flujo. Se puede utilizar para buscar todas las apariciones de «Mr. Smyth» por «Sr. Smith” o “cachorro de tigre” por “cachorro de lobo”. El editor de flujo es ideal para ediciones repetitivas que llevarían mucho tiempo realizar manualmente. Los parámetros pueden ser tan limitados como se requieran para un solo uso de una operación simple, o tan complejos como un archivo de secuencia de comandos con miles de líneas de ediciones por realizar. Con muy pocos argumentos, sed es una de las herramientas más útiles en la caja de herramientas de Linux y UNIX.
cómo funciona la sed
La utilidad sed lee un archivo secuencialmente línea por línea en la memoria. Luego realiza las acciones especificadas para la línea y vuelve a colocar la línea en la memoria para enviarla al terminal con los cambios solicitados realizados. Una vez que se han realizado todas las acciones en esa línea, lee la siguiente línea del archivo y repite el proceso hasta que finaliza el archivo. Como ya se mencionó, la salida estándar muestra el contenido de cada línea en la pantalla. Aquí entran en juego dos factores importantes: primero, la salida se puede redirigir a otro archivo para guardar los cambios; En segundo lugar, por defecto, el archivo original no se modifica. De forma predeterminada, sed lee el archivo completo y realiza cambios en cada línea. Sin embargo, puede limitarse a ciertas líneas si es necesario.
La sintaxis de la utilidad es:
sed [options] '{command}' [filename]
En este artículo, echaremos un vistazo a los comandos y opciones más utilizados, cómo funcionan y dónde pueden ser útiles.
El comando de respaldo
Uno de los usos más comunes de la utilidad sed y editores similares es reemplazar un valor por otro. Para lograr esto, la sintaxis para la parte del comando de la operación es:
's/{old value}/{new value}/'
Por lo tanto, a continuación se muestra un ejemplo de cómo cambiar «Tiger» a «Wolf» muy fácilmente:
$ echo The tiger cubs will meet on Tuesday after school | sed
's/tiger/wolf/'
The wolf cubs will meet on Tuesday after school
$
Tenga en cuenta que no es necesario especificar un nombre de archivo cuando la entrada se deriva de la salida de un comando anterior, como es el caso con awk, sort y la mayoría de las otras utilidades de línea de comandos de Linux UNIX.
múltiples cambios
Cuando es necesario realizar varios cambios en el mismo archivo o línea, existen tres métodos que se pueden utilizar para lograrlo. La primera es utilizar la opción «-e», que informa al programa que se está utilizando más de un comando de edición. Por ejemplo:
$ echo The tiger cubs will meet on Tuesday after school | sed -e '
s/tiger/wolf/' -e 's/after/before/'
The wolf cubs will meet on Tuesday before school
$
Esta es prácticamente la forma más larga, y la opción «-e» no se usa muy a menudo. Una mejor manera es separar el comando con un punto y coma:
$ echo The tiger cubs will meet on Tuesday after school | sed '
s/tiger/wolf/; s/after/before/'
The wolf cubs will meet on Tuesday before school
$
Tenga en cuenta que el punto y coma debe ser el siguiente carácter después de la barra inclinada. Si hay un espacio entre los dos, la operación falla y se devuelve un mensaje de error. Ambos métodos están bien, pero hay otro método que prefieren muchos administradores. Lo importante es que todo lo que esté entre los dos apóstrofes (») se interprete como comandos sed. Los comandos de análisis del programa shell no asumen que haya terminado de escribir hasta que escriba el segundo apóstrofo. Esto significa que el comando se puede escribir en varias líneas (donde Linux cambiará el mensaje de PS1 a un mensaje de continuación (generalmente «>») hasta que se escriba el segundo apóstrofo. Una vez que se escribe y se presiona la tecla Intro, toma Execute Die Procesamiento y los mismos resultados se generan como se muestra a continuación:
$ echo The tiger cubs will meet on Tuesday after school | sed '
> s/tiger/wolf/
> s/after/before/'
The wolf cubs will meet on Tuesday before school
$
Cambios…
[2021] Usando el editor sed en Linux {DH}