Tutoriales

Editor de secuencias (SED): conceptos básicos

SED, también conocido como Streaming Editor, es una herramienta muy útil. Se utiliza para buscar una palabra o patrón específico y luego realizar alguna operación sobre la palabra o patrón, o en otras palabras, transformarlo. En Windows, SED también se conoce como funciones de «buscar» y «reemplazar». SED viene de forma nativa con Ubuntu, por lo que no hay nada que instalar; simplemente comience a usarlo. En este tutorial, le mostraremos cómo usar SED o Streaming Editor.

Comando «S»

El más importante de todos los comandos en el SED o editor de secuencias es el comando «s». La «s» significa sustituto. La gramática es la siguiente:

de/expresión regular/alternativas/bandera

Por lo tanto, utilizamos un archivo llamado «file.txt» como ejemplo. Si captura «archivo.txt», se verá así:


Usemos un ejemplo para mostrar cómo funciona el comando «s»:

sed de/primero/luna/miarchivo.txt > luna.txt

Publicaciones relacionadas

Cuando se da una expresión como esta, significa:

    • s – significa sustituto.
    • primero: la palabra a buscar en un archivo llamado «archivo.txt».
    • Luna: la palabra «primero» se reemplaza por la palabra «luna».
    • i – significa ignorar. Primero ignoraremos esta parte.
    • file.txt: el archivo en el que SED buscará patrones o palabras. En este caso, la palabra «primero» sería:
    • Buscar en archivo.txt

    • Moon.txt: cuando la palabra «primero» se reemplaza por la palabra «luna», se guarda en «moon.txt».

Entonces, ¿qué está pasando aquí? SED solo reemplaza «luna» con la palabra «primero» en su primera aparición (lo que significa que si la palabra «primero» aparece varias veces, no las reemplazará todas o varias veces). El archivo que busca se llama «file.txt» y una vez convertido o reemplazado, se guardará en «moon.txt».

Se parece a esto:


Recuerde poner «/» donde sea necesario. Si se omite «/», SED no aceptará el comando.

Hasta ahora, simplemente hemos reemplazado la palabra «primera vez» por «encuentro». Ahora, digamos que queremos reemplazar la palabra «línea» en la tercera línea (que aparece muchas veces, específicamente cuatro veces) con la palabra «ángel».

¿Cómo nos dirigimos específicamente a la tercera línea? Usamos el siguiente comando:

sed '3s/Cable/Ángel/miarchivo.txt > angel.txt

Entonces, ¿qué acaba de pasar aquí? Bueno, «3» especifica el número de línea. Entonces pasa a la tercera fila. Luego, reemplace «angel» con «line» en el archivo «file.txt» y guarde el archivo convertido como «angel.txt».


¿Qué pasa si queremos reemplazar o transformar las filas «3» y «4»?

sed '3,4s/Cable/Ángel/miarchivo.txt > angel2.txt


Tenga en cuenta que en el ejemplo anterior utilizamos la bandera «i» para ignorar. Ahora usamos la bandera «g» para representar el universo.

Usemos un ejemplo para mostrar cómo funciona el comando «s»:

sed de/Cable/sol/g'archivo.txt > sol.txt

Cuando se da una expresión como esta, significa:

La «g» significa global. Recuerde, en el primer ejemplo, cuando usamos la bandera «i», solo hubo una sustitución. Ahora hemos agregado una «g» para global, lo que significa reemplazar en todas partes. Entonces, en lugar de decir primera, segunda, tercera y última fila, dice primer sol, segundo sol, tercer sol y último sol. Reemplaza líneas de una sola palabra en todo el archivo (todas las ubicaciones) con la palabra única «sol».


Ahora bien, ¿qué pasa si queremos seleccionar una línea en función de las palabras que contiene? Bueno, podemos ver que la última línea de «file.txt» tiene la palabra «último». Ahora, digamos que queremos «Esta es la última línea. Esta es la última oración». La oración se convierte en «Este es el último fantasma. Esta es la última oración».

Escribimos de la siguiente manera:

sed '/Último/s/Cable/fantasma/'Archivo.txt > fantasma.txt

«último» aquí le dice a SED que busque una línea que contenga la palabra «último» y luego reemplace la palabra «línea» en esa línea con «fantasma».


Ahora, digamos que queremos hacer lo contrario. Supongamos que queremos que en cada línea sin la palabra «última» la palabra «línea» se cambie a «fantasma». Escribamos lo siguiente:

sed '/Último/!s/Cable/fantasma/'Archivo.txt > Fantasma2.txt

Como puede ver aquí, cada línea excepto la última (que contiene la palabra «última») tiene la palabra «línea» reemplazada por la palabra «fantasma».


También podemos hacer esto usando números de línea:

sed '3,4!s/Cable/noche/miarchivo.txt > noche.txt

En este ejemplo, se omiten las líneas 3 y 4, pero cada dos líneas reemplaza la palabra «línea» por la palabra «noche».

múltiples comandos

Ahora bien, ¿qué pasa si tienes varios comandos? ¿Preferirías hacerlos uno a la vez o todos a la vez, ahorrando tiempo y trabajo?

¿Qué pasa si queremos cambiar «primero» por «día», «segundo» por «noche» y «restante» por «fantasma»? Hacemos esto usando punto y coma. ¡No olvides agregar el punto y coma al final!

Tenga en cuenta que no necesariamente tiene que colocar el indicador «i» o el indicador «ignorar», pero es absolutamente necesario colocar una barra diagonal (/) después de la frase de transición.

Ahora, veámoslo a través de un ejemplo:

sed de/primero/cielo/; s/segundo/noche/; s/tercero/fantasma/; s/Último/fantasma/;' archivo.txt > combinación.txt

en conclusión

El Stream Editor, o SED, es un método para seleccionar palabras o patrones y convertirlos. En realidad, es el equivalente en línea de comando de las funciones «Buscar» y «Reemplazar» de Windows. Las instrucciones SED pueden volverse muy complejas, pero si al menos comprendes los conceptos básicos, ¡estás listo para hacerlo! SED es en realidad una herramienta muy poderosa con muchas funciones. Aunque no podemos cubrir todo en un solo tutorial, cubrimos los conceptos básicos de SED. Básicamente, aprendimos cómo transformar una palabra específica usando el comando «s», donde «s» significa sustitución. Podemos usar estas palabras para reemplazar otras palabras, seleccionar selectivamente las líneas donde ocurrirá el reemplazo o incluso negarlo. De todos modos, esta es la parte más sencilla de SED.

¡Feliz codificación!

LEER  Cómo instalar y usar VirtualBox en RHEL 9/8

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba