¿Cuál es la opción G en SED?

¿Cuál es la opción G en SED?

"El término sed es una abreviatura de editor de transmisión. En Unix/Linux, el sed Comando analizados y transforma transmisiones (textos, en la mayoría de los casos). Es una herramienta de línea de comandos que viene preinstalada en cada sistema UNIX/Linux."

En esta guía, exploraremos el GRAMO opción sed.

Uso básico de SED

El uso más común del comando SED es encontrar y reemplazar el contenido en una corriente dada. La estructura de comando es la siguiente:

$ sed 's ///'


Eche un vistazo al siguiente ejemplo:

$ Echo "The Quick Brown Fox" | sed 's/the/the/'



Aquí,

    • El eco El comando imprime la cadena dada en el Stdout. En Bash, Stdout, stdin y stderr son flujos de datos incorporados.
    • El sed comando usa Stdout Como la transmisión, funciona como se especifica e imprime la salida en la consola.

Si está intentando editar un archivo de texto, SED no cambiará el contenido del archivo de forma predeterminada. Esto es para evitar la pérdida de datos accidentales. Para cambiar el contenido de un archivo directamente, debe ejecutar SED con edición en el lugar.

La opción G en SED

Al encontrar y reemplazar, el comportamiento predeterminado de sed es terminar sus acciones al encontrar la primera instancia. El siguiente ejemplo demuestra este comportamiento perfectamente:

$ echo "el el" | sed 's/the/the/'



Aquí,

    • Utilizando el eco comando, estamos pasando la misma palabra "el" varias veces al sed dominio.
    • Sin embargo, en la salida, solo la primera instancia de "el" se transforma en "el".

Para instruir a SED para transformar todas las instancias coincidentes del patrón dado, tenemos que agregar la opción G. Actualice el comando de la siguiente manera:

$ echo "el el" | sed 's/the/the/g'



Ahora, todas las instancias de "el" se cambian a "el" correctamente.

La opción G en SED

Finalmente llegamos al punto de enfoque de esta guía. Mientras que la gramo La opción es aplicable para la sustitución de texto, el GRAMO La opción se usa para un propósito completamente diferente.

Utilizando el GRAMO Opción, podemos agregar el espacio de retención al espacio del patrón. En términos simples, podemos agregar nuevas líneas antes/después del patrón de coincidencia.

Para la demostración, he creado un archivo de texto de muestra prueba.TXT:

gato << EOF > prueba.TXT
el
rápido
marrón
el
zorro
EOF


Espaciado adicional

Ahora podemos realizar varias operaciones en el espacio del archivo. Por ejemplo, para espaciar el archivo, use el siguiente comando:

Prueba de $ sed g.TXT



Del mismo modo, podemos triplicar el espacio del archivo:

prueba de $ sed 'g; g'.TXT



Aquí,

    • En ambos casos, porque no estamos proporcionando ningún patrón para que coincida con, sed está coincidiendo para todos los textos en el archivo.
    • El sed Comando funciona línea por línea en un flujo de texto determinado. Después de hacer coincidir cada línea (porque no se proporcionó un patrón específico), se agrega una nueva línea.

Eliminar espaciado adicional

También podemos usar el GRAMO Opción para eliminar todas las líneas en blanco y doble espacio:

prueba de $ sed 'g; g'.txt | sed '/^$/d; g'

Insertar líneas en blanco antes/después de los partidos

Podemos especificar un patrón usando expresión regular y decirle a SED que agregue una línea en blanco antes/después.

El primer ejemplo será agregar una línea en blanco debajo del patrón de coincidencia:

$ sed '/the/g' prueba.TXT



El siguiente ejemplo será agregar una línea en blanco sobre el patrón de coincidencia:

$ sed '/the/x; p; x;'.TXT



Finalmente, podemos combinarlos a ambos para insertar líneas en blanco alrededor del patrón coincidente:

$ sed '/the/x; p; x; g;'.TXT


Pensamientos finales

En esta guía, demostramos con éxito varias formas de usar el GRAMO opción con sed Para agregar espacios en el texto. Esta técnica puede ser útil en varias situaciones, por ejemplo, destacando líneas específicas en un registro de depuración.

Una gran ventaja de SED es su soporte de expresión regular. Obtenga más información sobre SED con Regex. El comando SED también se puede integrar fácilmente en scripting de shell.

Computación feliz!