Perl remove caracteres em uma string

0

Eu tenho uma variável $ cbDescription em um script Perl. Quando imprimo $ cbDescription, recebo o seguinte:

tIP SOLD -5 /ESH4 @1832.00

Eu quero remover qualquer sinal de + ou - ou @ ou vírgulas da string, então eu tenho a seguinte linha:

$cbDescription =~ s/[+-\@,]//g;

Espero que essa linha altere $ cbDescription para:

tIP SOLD 5 /ESH4 1832.00

Mas quando eu imprimo $ cbDescription depois dessa linha, eu recebo:

tIP SOLD  ESH

Por que isso também removeu todos os números e o ponto decimal?

    
por pacoverflow 16.02.2014 / 23:14

1 resposta

1

- é um delimitador de intervalo entre parênteses, é necessário evitá-lo:

% echo "tIP SOLD -5 /ESH4 @1832.00" | perl -pi -e 's/[+\-\@,]//g'
tIP SOLD 5 /ESH4 1832.00
    
por 16.02.2014 / 23:18

Tags