Como remover caracteres no meio de uma string no bash

12

No bash eu tenho uma string, e estou tentando remover um caractere no meio da string. Eu sei que podemos remover caracteres do começo ou do final de uma string assim:

myVar='YES'
myVar="${myVar#'Y'}"
myVar="${myVar%'S'}"

mas como posso remover o que está no meio?

    
por Victor 05.11.2014 / 16:56

1 resposta

15

Se você souber que caractere (s) remover, você pode usar a substituição na expansão de parâmetros:

myVar=${myVar/E}  # Replace E with nothing

Ou, se você souber quais caracteres manter:

myVar=${myVar/[^YS]}  # Replace anything but Y or S

Ou, se você souber a posição:

myVar=${myVar:0:1}${myVar:2:1}  # The first and third characters
    
por 05.11.2014 / 17:01

Tags