SED eliminar el espacio en blanco

SED eliminar el espacio en blanco
Eliminar espacios en blanco en documentos es un paso de formato esencial que se requiere para mejorar el diseño general de un texto y para garantizar que los datos estén limpios y ordenados. Ayuda a almacenar solo los datos requeridos y deshacerse de los espacios innecesarios líderes y finales. Los siguientes son algunos escenarios en los que es posible que necesite eliminar los espacios en blanco:
  • Para reformatear el código fuente
  • Para limpiar los datos
  • Para simplificar la salida de la línea de comandos

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

Para eliminar los espacios en blanco de su documento, puede usar 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 los espacios en blanco de los datos.

Aprenderá a usar SED para:

  • Eliminar todos los espacios blancos
  • Eliminar los espacios en blanco
  • Eliminar los espacios en blanco
  • Eliminar los espacios en blanco y posteriores
  • Reemplace los espacios múltiples con espacio único

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 de terminal Ubuntu predeterminado para ejecutar los comandos. Para abrir el terminal, use el atajo de teclado Ctrl+Alt+T.

Que es sed

SED (representa el editor de transmisión) es una utilidad muy potente y útil en Linux que nos permite realizar manipulaciones de texto básicas en las transmisiones de entrada. No es un editor de texto, pero ayuda a manipular y filtrar el texto. Recibe las transmisiones de entrada y las edita de acuerdo con las instrucciones del usuario y luego imprime el texto transformado en la pantalla.

Con sed, puedes:

  • Elegir texto
  • Buscar texto
  • Insertar texto
  • Reemplazar texto
  • Eliminar texto

Uso de SED para eliminar los espacios en blanco

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

s /regexp /reemplazo /banderas

Dónde

  • s/: es expresión de sustitución
  • Regexp: es una expresión regular a coincidir
  • reemplazo: es la cadena de reemplazo
  • banderas: Solo usaremos la bandera "G" para habilitar la sustitución a nivel mundial en cada línea

Expresiones regulares

Algunas de las expresiones regulares que usaremos aquí son:

  • ^ partidos de inicio de la línea
  • ps partidos el final de la línea
  • + coincide con uno o más ocurrencias del personaje anterior
  • * coincide con cero o más ocurrencias del carácter anterior.

Para fines de demostración, utilizaremos el siguiente archivo de muestra llamado "TestFile".

Ver todos los espacios en blanco en un archivo

Para encontrar todos los espacios en blanco en su archivo, canse la salida del comando CAT al comando TR como este:

$ Cat TestFile | tr "" "*" | tr "\ t" "&"

Este comando reemplaza todos los espacios en blanco en su archivo por (*) símbolo, lo que hace que sea más fácil detectar todos los espacios en blanco si son espacios en blanco, múltiples, múltiples, liderantes o finos.

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

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

En algunos casos, debe eliminar todos los espacios en blanco de los datos, yo.mi. liderando, desastre y los espacios en blanco entre los textos. El siguiente comando eliminará todos los espacios en blanco del "archivo de prueba".

$ Cat TestFile | 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ó la siguiente salida, que muestra que todos los espacios en blanco se han eliminado del texto.

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

$ Cat TestFile | sed -r 's/\ s+// g' | tr "" "*" | tr "\ t" "&"

Desde la salida, puede ver que no es un 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 que la línea número 2), puede usar el siguiente comando:

$ Cat TestFile | sed -r '2s/\ s+// g'

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

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

$ Cat TestFile | sed 's/^[\ t]*//'

Producción:

La siguiente salida apareció después de ejecutar el comando anterior, que muestra que todos los espacios principales se han eliminado del texto.

También puede usar el siguiente comando para verificar que se hayan eliminado todos los espacios principales:

$ Cat TestFile | sed 's/^[\ t]*//' | tr "" "*" | tr "\ t" "&"

Desde la salida, puede ver que no hay (*) símbolo al comienzo de las líneas que verifica que se eliminen todos los espacios principales.

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

$ Cat TestFile | sed '2s/^[\ t]*//'

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

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

$ Cat TestFile | sed 's/[\ t]*$ //'

Producción:

La siguiente salida apareció después de ejecutar el comando anterior, 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 TestFile | sed 's/[\ t]*$ //' | tr "" "*" | tr "\ t" "&"

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

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

$ Cat TestFile | sed '2s/[\ t]*$ //'

Eliminar los espacios en blanco y posteriores

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

$ Cat TestFile | sed 's/^[\ t]*//; s/[\ t]*$ //'

Producción:

La siguiente salida apareció después de ejecutar el comando anterior, que muestra que tanto los espacios en blanco como los siguientes se han eliminado del texto.

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

$ Cat TestFile | sed 's/^[\ t]*//; s/[\ t]*$ //' | tr "" "*" | tr "\ t" "&"

Desde la salida, puede ver que no hay (*) símbolo al comienzo o al final de las líneas que verifica que se eliminen todos los espacios principales y finales.

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

$ Cat TestFile | sed '2s/^[\ t]*//; 2s/[\ t]*$ //'

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

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

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

$ Cat TestFile | sed 's/[] \+//g'

Producción:

La siguiente salida apareció después de ejecutar el comando anterior, que muestra que los múltiples espacios en blanco han sido reemplazados por el solo espacio en blanco.

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

$ Cat TestFile | sed 's/[] \+//g' | tr "" "*" | tr "\ t" "&"

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

Entonces, se trataba de eliminar los espacios en blanco de sus datos utilizando SED. En este artículo, ha aprendido cómo usar SED para eliminar todos los espacios en blanco de sus datos, eliminar solo el espacio en blanco líder o posterior, y eliminar el espacio en blanco líder y continuo. También ha aprendido a reemplazar los espacios múltiples con un solo espacio. Ahora será fácil para usted eliminar los espacios en blanco de un archivo que contiene cientos o miles de líneas.