¿Cómo se hacen múltiples reemplazos SED?

¿Cómo se hacen múltiples reemplazos SED?
El comando SED (editor de transmisión) puede realizar varias funciones en las transmisiones en Unix/Linux. Por ejemplo: buscar, encontrar y reemplazar, inserción/eliminación, etc. Sin embargo, se usa principalmente para encontrar y reemplazar textos. El comando SED permite editar archivos sin abrirlos. Debido a que es una herramienta de línea de comandos, también se puede implementar en scripts.

En esta guía, mostraremos cómo realizar los múltiples reemplazos de SED en un solo archivo.

Reemplazar texto usando SED

Creando un texto de muestra
El comando SED opera una tarea definida en una transmisión. Para fines de demostración, vamos a crear un archivo ficticio para servir como transmisión. Cree un archivo de texto usando el siguiente comando:

gato < test.txt
el veloz zorro marrón
salta sobre el perro perezoso
EOF

Verifique el contenido del archivo usando el siguiente comando:

Prueba de $ Cat.TXT

Reemplazo de texto
Para reemplazar los textos, la estructura de comando general es la siguiente:

$ sed 's /// g'

Aquí, SED busca el patrón especificado en la corriente dada y reemplácelo con el texto de reemplazo dado. La bandera G asegura que SED busque todo el texto para las coincidencias de patrones.

Vamos a probarlo en nuestro archivo de demostración. Ejecute el siguiente comando:

prueba de $ sed 's/the/hello/g'.TXT

Realización de múltiples reemplazos

En el último ejemplo, reemplazamos un solo patrón de texto. ¿Qué pasaría si quisiera reemplazar múltiples patrones??

Hay un par de formas diferentes de hacerlo. Podemos hacerlo dentro de un solo comando SED o dividirlo en varios.

Reemplazos múltiples en un solo comando SED
Podemos pasar las expresiones múltiples a SED usando la bandera -e. Eche un vistazo al siguiente ejemplo:

$ sed -e 's/the/hello/g' -e 's/perezy/cansado/' prueba.TXT

Aquí, la primera expresión reemplaza "el" con "hola". La segunda expresión reemplaza "perezosa" con "cansado".

En lugar de declarar múltiples expresiones, también podemos combinarlas en una sola expresión, cada parte separada por un semicolon (;). Eche un vistazo al siguiente ejemplo:

$ sed -e 's/the/hello/g; s/perezoso/cansado/' prueba.TXT

Si está ejecutando el mismo conjunto de comandos SED una y otra vez, podemos colocarlos en un solo archivo. Podemos pasar el archivo como fuente de comandos a SED usando el indicador -f. La estructura de comando se parece a lo siguiente:

$ sed -f

Vamos a ponerlo en acción. Compilamos todos los comandos SED que queremos ejecutar en los comandos de archivo.TXT.

Comandos de $ CAT.TXT

Tenga en cuenta que cada expresión SED única se coloca en una nueva línea para mejorar la claridad visual. Sin embargo, también puede usar la técnica de semicolon para fusionar todas las expresiones en una sola expresión.

Ahora, podemos especificar este archivo a SED como la lista de expresiones para ejecutarse en la transmisión dada:

$ sed -f comandos.prueba txt.TXT

Múltiples reemplazos SED con múltiples comandos SED
Este es un enfoque más directo. En lugar de usar cualquier truco elegante, filtramos la transmisión usando un comando SED y pasamos la salida a los otros comandos SED.

Eche un vistazo al siguiente ejemplo:

prueba de $ sed 's/the/hello/g'.txt | sed 's/perezoso/cansado'

Aquí, el primer comando SED reemplaza "el" con "hola". La salida se lanza al segundo comando SED que reemplaza "perezoso" con "cansado".

Si bien este método es simple, puede volverse redundante muy fácilmente, especialmente si necesita ejecutar múltiples expresiones SED. En ese caso, usar el archivo de comando SED es la forma más eficiente.

Conclusión

En esta guía, exploramos las diversas formas de cómo podemos realizar los reemplazos múltiples usando SED. Demostramos cómo pasar las expresiones múltiples usando la bandera -e. Además, comprimimos las expresiones múltiples en una sola expresión usando los semicolones. Para una carga de trabajo más repetitiva, también demostramos el uso de un archivo de texto para ejecutar las múltiples expresiones SED a la vez.

Finalmente, exploramos el uso de SED de una manera simple: la salida de la salida de un comando SED a otro.

En esta guía, los comandos SED en realidad no cambian el contenido del archivo. Obtenga más información sobre el uso de SED para editar los archivos en el lugar.

Computación feliz!