tvheadend tutorial servidor puerto para m3u luispa iptv instalar crear archivo bash shell

bash - tutorial - servidor iptv linux



¿Cómo eliminar el espacio de la cadena? (5)

Esta pregunta ya tiene una respuesta aquí:

En ubuntu bash script cómo eliminar el espacio de una variable

cadena será

3918912k

Quiere eliminar todo el espacio en blanco.



Las herramientas sed o tr harán esto por ti intercambiando el espacio en blanco por nada

sed ''s/ //g''

tr -d '' ''

Ejemplo:

$ echo " 3918912k " | sed ''s/ //g'' 3918912k


También puede usar echo para eliminar espacios en blanco, ya sea al principio o al final de la cadena, pero también repetir espacios dentro de la cadena.

$ myVar=" kokor iiij ook " $ echo "$myVar" kokor iiij ook $ myVar=`echo $myVar` $ $ # myVar is not set to "kokor iiij ook" $ echo "$myVar" kokor iiij ook


Una forma divertida de eliminar todos los espacios de una variable es usar printf:

$ myvar=''a cool variable with lots of spaces in it'' $ printf -v myvar ''%s'' $myvar $ echo "$myvar" acoolvariablewithlotsofspacesinit

Resulta que es un poco más eficiente que myvar="${myvar// /}" , pero no es seguro con respecto a los globos ( * ) que pueden aparecer en la cadena. Así que no lo uses en el código de producción.

Si realmente quieres usar este método y estás realmente preocupado por la cosa de los globos (y deberías hacerlo), puedes usar set -f (que deshabilita los globos).

$ ls file1 file2 $ myvar='' a cool variable with spaces and oh! no! there is a glob * in it'' $ echo "$myvar" a cool variable with spaces and oh! no! there is a glob * in it $ printf ''%s'' $myvar ; echo acoolvariablewithspacesandoh!no!thereisaglobfile1file2init $ # See the trouble? Let''s fix it with set -f: $ set -f $ printf ''%s'' $myvar ; echo acoolvariablewithspacesandoh!no!thereisaglob*init $ # Since we like globbing, we unset the f option: $ set +f

Publiqué esta respuesta solo porque es divertido, no usarla en la práctica.


Ya que estás usando bash, la forma más rápida sería:

shopt -s extglob # Allow extended globbing var=" lakdjsf lkadsjf " echo "${var//+([[:space:]])/}"

Es más rápido porque utiliza funciones integradas en lugar de activar procesos adicionales.

Sin embargo, si desea hacerlo de una manera compatible con POSIX, use sed :

var=" lakdjsf lkadsjf " echo "$var" | sed ''s/[[:space:]]//g''