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:
Verifique el contenido del archivo usando el siguiente comando:
Prueba de $ Cat.TXTReemplazo de texto
Para reemplazar los textos, la estructura de comando general es la siguiente:
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'.TXTRealizació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:
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.TXTSi 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 -fVamos a ponerlo en acción. Compilamos todos los comandos SED que queremos ejecutar en los comandos de archivo.TXT.
Comandos de $ CAT.TXTTenga 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.TXTMú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!