Como remover um determinado símbolo de um script bash

4

Eu tenho um script bash onde eu recebo o uso do disco, por exemplo 60% . Como posso remover o símbolo % ? Usando grep ou awk?

    
por pmerino 23.08.2011 / 15:11

5 respostas

4

Isso deve ser feito:

sed 's/%//'

Canalize sua seqüência de caracteres para obter os melhores resultados.

    
por 23.08.2011 / 15:23
5

Em vez de sed, use tr.

tr -d '%'
    
por 23.08.2011 / 16:14
5

Não há necessidade de ferramentas externas como tr ou mesmo sed , pois o bash pode fazer isso sozinho desde sempre.

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

Esta instrução remove a substring de correspondência mais curta (nesse caso, um escape % ) do final da variável. Existem outras facilidades de manipulação de strings embutidas no bash. Até suporta expressões regulares. Geralmente, a maioria das coisas que você normalmente vê pessoas usando tr , sed , awk ou grep pode ser feita usando um bash builtin. É quase ninguém sabe disso e traz as grandes armas ...

Consulte o link para obter mais informações.

    
por 23.08.2011 / 18:00
4

sed é uma das maneiras mais fáceis

sed -i 's/\%//g' fileName
    
por 23.08.2011 / 15:25
2

Se o uso do disco estiver em uma variável, o bash pode fazer a remoção como parte de uma substituição de variável:

diskusagepct="60%"
echo "disk usage: ${diskusagepct%\%} percent"  # prints disk usage: 60 percent
diskusagenum="${diskusagepct%\%}"  # sets diskusagenum to 60
    
por 23.08.2011 / 17:56