“En el ecosistema Unix/Linux, el comando SED es una herramienta dedicada para editar transmisiones, de ahí el nombre (editor de transmisión). Recibe entradas de texto como "transmisiones" y realiza las operaciones especificadas en el flujo."
En esta guía, exploraremos realizar la edición de archivos en el lugar con SED.
Requisitos previos
Para realizar los pasos demostrados en esta guía, necesitará los siguientes componentes:
Edición de la corriente usando SED
Primero, echemos un vistazo a la forma en que Funciona SED. La estructura de comando de SED es la siguiente:
$ sed
El siguiente comando muestra un flujo de trabajo simple de SED:
$ Echo "The Quick Brown Fox" | Sed -e 's/Quick/Fast/'
Aquí,
¿Qué pasaría si quisiéramos modificar los textos de un archivo de texto?? El comando SED también puede funcionar usando archivos de texto como transmisión. Para la demostración, he tomado el siguiente archivo de texto:
$ Cat Demo.TXT
El siguiente comando SED reemplazará todas las instancias de el con cañón:
$ sed -e 's/the/da/g' demostración.TXT
Verifique el contenido de manifestación.TXT Para los cambios:
$ Cat Demo.TXT
Del último ejemplo, podemos ver que SED solo imprimió la transmisión resultante en la consola. El archivo fuente (manifestación.TXT) no fue tocado.
Edición de archivos en el lugar utilizando SED
Como se demuestra en el ejemplo anterior, la acción predeterminada de SED es imprimir el contenido cambiado en la pantalla. Es una gran característica que puede evitar cambios accidentales en los archivos. Sin embargo, si queríamos guardar los cambios en el archivo, necesitábamos proporcionar algunas opciones adicionales.
Una técnica simple y común sería reemplazar el contenido del archivo con el sed producción. Eche un vistazo al siguiente comando:
$ Cat Demo.txt | sed 's/the/da/g' | demo de tee.TXT
Aquí, estamos sobrescribiendo el contenido de manifestación.TXT con la salida del sed dominio.
Mientras que el comando funciona según lo previsto, requiere escribir códigos adicionales. Involucramos los comandos de gato y tee junto con el comando SED. Bash también está involucrado en la redirección de las salidas. Por lo tanto, el comando es más intensivo en recursos de lo que debe ser.
Para resolver esto, podemos usar la función de edición en el lugar de SED. En este modo, sed cambiará el contenido del archivo directamente. Para invocar el modo de edición en el lugar, tenemos que usar el -i o -en su lugar bandera. La siguiente sed El comando lo implementa:
$ sed -in -place -e 's/the/da/g' demostración.TXT
Controlar manifestación.TXT Para los cambios:
$ Cat Demo.TXT
Como puede ver, el contenido del archivo se cambia sin agregar componentes adicionales.
Pensamientos finales
En esta guía, demostramos con éxito realizar ediciones en el lugar en archivos de texto utilizando sed. Si bien SED en sí es un programa simple, la principal fuente de poder se encuentra dentro de su capacidad para incorporar expresiones regulares. Regex permite describir patrones muy complejos en los que actúa SED. Echa un vistazo a Regex en SED para aprender más en profundidad.
Alternativamente, puede usar scripts bash para filtrar y modificar el contenido de un archivo. De hecho, puede incorporar SED en sus scripts para ajustar el contenido de texto. Echa un vistazo a esta guía sobre cómo comenzar con Bash Scripting.
Computación feliz!