5 votos

Cómo eliminar un determinado símbolo para un bash script

Tengo un bash script donde obtengo el uso del disco, por ejemplo 60% . ¿Cómo puedo eliminar el % ¿símbolo? ¿Utilizando grep o awk?

7voto

Holger Just Puntos 2986

No se necesitan herramientas externas como tr o incluso sed ya que bash puede hacerlo por sí mismo desde siempre.

percentage="60%"
number=${percentage%\%}

Esta sentencia elimina la subcadena más corta que coincida (en este caso una cadena escapada % ) desde el final de la variable. Hay otras facilidades de manipulación de cadenas incorporadas en bash. Incluso soporta expresiones regulares. En general, la mayoría de las cosas que normalmente se ven usando tr , sed , awk o grep para se puede hacer usando un builtin de bash. Es que casi nadie lo sabe y trae la artillería pesada...

Ver http://tldp.org/LDP/abs/html/parameter-substitution.html#PSOREX1 para más información.

7voto

Ryan Sampson Puntos 2898

Esto debería servir:

sed 's/%//'

Pase el hilo a través de él para obtener los mejores resultados.

5voto

MonkeeSage Puntos 391

En lugar de sed, utilice tr.

tr -d '%'

2voto

nullDev Puntos 1778

Si el uso del disco está en una variable, bash puede hacer la eliminación como parte de una sustitución de variables:

diskusagepct="60%"
echo "disk usage: ${diskusagepct%\%} percent"  # prints disk usage: 60 percent
diskusagenum="${diskusagepct%\%}"  # sets diskusagenum to 60

1voto

Ed Ball Puntos 1341

Prueba a eliminar el grupo en el hogar, reiniciar el PC y volver a crear el grupo en el hogar con el mismo nombre y otras configuraciones.

No elijas "estoy conectado directamente y otros están en mi red"; elige "todos en la misma red". Nadie debe ser anfitrión o cliente.

Después de hacer eso, habilite el acceso remoto, para que pueda tener acceso a otros PCs para sus archivos y para el control total.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: