sed

Sed Eliminar espacios en blanco

Sed Eliminar espacios en blanco
La eliminación de espacios en blanco en los documentos es un paso de formato esencial que se requiere para mejorar el diseño general de un texto y garantizar que los datos estén limpios y ordenados. Ayuda a almacenar solo los datos necesarios y a deshacerse de los espacios iniciales y finales innecesarios. A continuación, se muestran algunos escenarios en los que es posible que deba eliminar los espacios en blanco:

Si hablamos de espacios en blanco iniciales, son relativamente fáciles de detectar, ya que están al comienzo del texto. Sin embargo, no es fácil detectar los espacios en blanco finales. Lo mismo ocurre con los espacios dobles, que a veces también son difíciles de detectar. Todo se vuelve más desafiante cuando necesita eliminar todos los espacios en blanco iniciales y finales de un documento que contiene miles de líneas.

Para eliminar los espacios en blanco de su documento, puede utilizar varias herramientas como awk, sed, cut y tr. En algunos otros artículos, hemos discutido el uso de awk para eliminar los espacios en blanco. En este artículo, discutiremos el uso de sed para eliminar espacios en blanco de los datos.

Aprenderá a usar sed para:

Ejecutaremos los comandos en Ubuntu 20.04 Fosa focal. También puede ejecutar los mismos comandos en otras distribuciones de Linux. Usaremos la aplicación Ubuntu Terminal predeterminada para ejecutar los comandos. Para abrir la Terminal, use el atajo de teclado Ctrl + Alt + T.

Que es Sed

Sed (significa editor de flujo) es una utilidad muy poderosa y práctica en Linux que nos permite realizar manipulaciones de texto básicas en los flujos de entrada. No es un editor de texto, pero ayuda a manipular y filtrar texto. Recibe los flujos de entrada y los edita de acuerdo con las instrucciones del usuario y luego imprime el texto transformado en la pantalla.

Con sed, puede:

Uso de Sed para eliminar espacios en blanco

Usaremos la siguiente sintaxis para eliminar espacios en blanco del texto:

s / REGEXP / reemplazo / banderas

Dónde

Expresiones regulares

Algunas de las expresiones regulares que usaremos aquí son:

Para fines de demostración, usaremos el siguiente archivo de muestra llamado "archivo de prueba".

Ver todos los espacios en blanco en un archivo

Para encontrar todos los espacios en blanco en su archivo, canalice la salida del comando cat al comando tr de esta manera:

$ cat archivo de prueba | tr "" "*" | tr "\ t" "&"

Este comando reemplaza todos los espacios en blanco en su archivo por el símbolo (*), lo que facilita la detección de todos los espacios en blanco, ya sean espacios en blanco únicos, múltiples, iniciales o finales.

En la siguiente captura de pantalla, puede ver que los espacios en blanco se reemplazan por el símbolo *.

Eliminar todos los espacios en blanco (incluidos los espacios y las pestañas)

En algunos casos, es necesario eliminar todos los espacios en blanco de los datos, yo.mi. inicial, final y los espacios en blanco entre los textos. El siguiente comando eliminará todos los espacios en blanco del "archivo de prueba".

$ cat archivo de prueba | sed -r 's / \ s + // g'

Nota: Sed no altera sus archivos a menos que guarde la salida en el archivo.

Producción:

Después de ejecutar el comando anterior, apareció el siguiente resultado, que muestra que todos los espacios en blanco se han eliminado del texto.

También puede usar el siguiente comando para verificar que se hayan eliminado todos los espacios en blanco.

$ cat archivo de prueba | sed -r 's / \ s + // g' | tr "" "*" | tr "\ t" "&"

En la salida, puede ver que no hay símbolo (*), lo que significa que se han eliminado todos los espacios en blanco.

Para eliminar todos los espacios en blanco, pero solo de una línea específica (digamos la línea número 2), puede usar el siguiente comando:

$ cat archivo de prueba | sed -r '2s / \ s + // g'

Eliminar todos los espacios en blanco principales (incluidos los espacios y las pestañas)

Para eliminar todos los espacios en blanco del principio de cada línea (espacios en blanco iniciales), use el siguiente comando:

$ cat archivo de prueba | sed 's / ^ [\ t] * //'

Producción:

El siguiente resultado apareció después de ejecutar el comando anterior, que muestra que todos los espacios en blanco iniciales se han eliminado del texto.

También puede utilizar el siguiente comando para verificar que se hayan eliminado todos los espacios en blanco iniciales:

$ cat archivo de prueba | sed 's / ^ [\ t] * //' | tr "" "*" | tr "\ t" "&"

En la salida, puede ver que no hay ningún símbolo (*) al comienzo de las líneas, lo que verifica que se eliminen todos los espacios en blanco iniciales.

Para eliminar los espacios en blanco iniciales de solo una línea específica (digamos la línea número 2), puede usar el siguiente comando:

$ cat archivo de prueba | sed '2s / ^ [\ t] * //'

Eliminar todos los espacios en blanco finales (incluidos los espacios y las pestañas)

Para eliminar todos los espacios en blanco del final de cada línea (espacios en blanco finales), use el siguiente comando:

$ cat archivo de prueba | sed 's / [\ t] * $ //'

Producción:

El siguiente resultado apareció después de ejecutar el comando anterior, que muestra que todos los espacios en blanco finales se han eliminado del texto.

También puede usar el siguiente comando para verificar que se hayan eliminado todos los espacios en blanco finales.

$ cat archivo de prueba | sed 's / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

En la salida, puede ver que no hay ningún símbolo (*) al final de las líneas, lo que verifica que se eliminen todos los espacios en blanco finales.

Para eliminar los espacios en blanco finales de solo una línea específica (digamos la línea número 2), puede usar el siguiente comando:

$ cat archivo de prueba | sed '2s / [\ t] * $ //'

Eliminar espacios en blanco iniciales y finales

Para eliminar todos los espacios en blanco tanto del inicio como del final de cada línea (i.mi. espacios en blanco iniciales y finales), utilice el siguiente comando:

$ cat archivo de prueba | sed 's / ^ [\ t] * //; s / [\ t] * $ //'

Producción:

El siguiente resultado apareció después de ejecutar el comando anterior, que muestra que tanto los espacios en blanco iniciales como los finales se han eliminado del texto.

También puede usar el siguiente comando para verificar que se hayan eliminado los espacios en blanco iniciales y finales.

$ cat archivo de prueba | sed 's / ^ [\ t] * //; s / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

En la salida, puede ver que no hay ningún símbolo (*) al principio o al final de las líneas, lo que verifica que se eliminen todos los espacios en blanco iniciales y finales.

Para eliminar los espacios en blanco iniciales y finales de solo una línea específica (digamos la línea número 2), puede usar el siguiente comando:

$ cat archivo de prueba | sed '2s / ^ [\ t] * //; 2s / [\ t] * $ //'

Reemplazar múltiples espacios en blanco con un solo espacio en blanco

En algunos casos, hay varios espacios en blanco en el mismo lugar en el archivo, pero solo necesita un espacio en blanco. Puede hacerlo reemplazando esos espacios múltiples por un solo espacio usando sed.

El siguiente comando reemplazará todos los espacios en blanco múltiples con un solo espacio en blanco de cada línea en el "archivo de prueba".

$ cat archivo de prueba | sed 's / [] \ + / / g'

Producción:

El siguiente resultado apareció después de ejecutar el comando anterior, que muestra que los espacios en blanco múltiples se han reemplazado con el espacio en blanco único.

También puede usar el siguiente comando para verificar si varios espacios en blanco se reemplazan con un solo espacio en blanco:

$ cat archivo de prueba | sed 's / [] \ + / / g' | tr "" "*" | tr "\ t" "&"

En la salida, puede ver el símbolo único (*) en cada lugar que verifica que todas las apariciones de los espacios en blanco múltiples se reemplazan con un solo espacio en blanco.

Entonces, se trataba de eliminar los espacios en blanco de sus datos usando sed. En este artículo, ha aprendido a usar sed para eliminar todos los espacios en blanco de sus datos, eliminar solo los espacios en blanco iniciales o finales y eliminar los espacios en blanco iniciales y finales. También ha aprendido cómo reemplazar varios espacios con un solo espacio. Ahora le resultará fácil eliminar los espacios en blanco de un archivo que contenga cientos o miles de líneas.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...