Recortar espacios en blanco en Bash

Fumbani Banda 24 marzo 2022
  1. Usando el comando xargs para recortar espacios en blanco en Bash
  2. Usando el comando sed para recortar espacios en blanco en Bash
  3. Usando el comando awk para recortar espacios en blanco en Bash
Recortar espacios en blanco en Bash

Este tutorial muestra cómo recortar espacios en blanco en bash usando el comando xargs, el comando sed y el comando awk.

Usando el comando xargs para recortar espacios en blanco en Bash

xargs significa argumentos extendidos. xargs lee la entrada de la entrada estándar y convierte la entrada en argumentos de un comando. El comando xargs también se puede usar para eliminar espacios en blanco externos de una cadena en bash.

El siguiente ejemplo ilustra el uso de xargs para recortar los espacios en blanco de una cadena en bash.

xargs

El comando xargs elimina los espacios al principio y al final de la cadena. No elimina los espacios en blanco internos en la cadena. De la imagen de arriba, el espacio en blanco interno entre , y world no se ha eliminado, mientras que los espacios al principio y al final de la cadena se han eliminado.

Usando el comando sed para recortar espacios en blanco en Bash

El comando sed también se puede usar para recortar espacios en blanco al principio y al final de una cadena en bash. La siguiente secuencia de comandos utiliza el comando sed para recortar los espacios en blanco anteriores y posteriores de una cadena en bash.

text="   Bash is Fun   "
#print the original text
echo "$text"

#remove whitespaces
var=`echo $text | sed 's/ *$//g'`

echo "Hi there $var!"

Al ejecutar el script, se muestra el siguiente resultado.

   Bash is Fun
Hi there Bash is Fun!  

Usando el comando awk para recortar espacios en blanco en Bash

El comando awk también se usa para recortar el espacio en blanco de un archivo o cadena en bash. Usando awk, podemos recortar los espacios en blanco al principio de una cadena, y podemos recortar los espacios en blanco al final de la cadena, o ambos.

Escribamos un script bash que use awk para recortar los espacios en blanco al comienzo de una cadena. Este (/^[ \t]+/,""), le dice al comando awk que reemplace el espacio en blanco al principio del texto con nada,"".

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the beginning
echo "$text" | awk '{gsub(/^[ \t]+/,""); print$0, "!"}'

Ejecutemos el script.

bash trim_start.sh

El script produce el siguiente resultado.

   Bash is Fun
Bash is Fun    !

A partir de la salida, podemos ver que se ha eliminado el espacio en blanco al principio de la cadena.

Escribamos un script bash que elimine los espacios en blanco al final de la cadena.

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the end
echo "$text" | awk '{gsub(/[ \t]+$/,""); print$0, "!"}'

Ejecutemos el script.

bash trim_end.sh

La ejecución del script produce el siguiente resultado.

   Bash is Fun
   Bash is Fun !

Ahora, escribamos un script bash que recorte los espacios en blanco tanto al principio como al final de un script bash.

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the start and end
echo "$text" | awk '{gsub(/^[ \t]+| [ \t]+$/,""); print$0, "!"}'

Ejecutemos el script.

bash trim.sh

El script muestra el siguiente resultado en el resultado estándar. Los espacios en blanco iniciales y finales se han eliminado de la cadena.

   Bash is Fun
Bash is Fun !
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Artículo relacionado - Bash String