Cómo eliminar caracteres en el medio de una cadena en bash


12

En bash tengo una cadena, y estoy tratando de eliminar un personaje en el medio de la cadena. Sé que podemos eliminar caracteres desde el principio o el final de una cadena como esta:

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

pero, ¿cómo puedo eliminar el que está en el medio?

Respuestas:


18

Si sabe qué caracteres eliminar, puede usar la sustitución en la expansión de parámetros:

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

O, si sabes qué personajes mantener:

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

O, si conoce la posición:

myVar=${myVar:0:1}${myVar:2:1}  # The first and third characters

¿Y si tú tampoco lo sabes? ¿Qué pasa si solo sabes que quieres mantener Y y S?
Rutger Huijsmans

@RutgerHuijsmans: Verifique la actualización.
choroba
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.