sustituciones de cadena: todas las ocurrencias


13

Una pregunta simple, pero no puedo encontrar la respuesta. la documentación de zsh me abruma :-(

function z ()
{
  echo ${1:s/the/THE}
}

$ z thethethe
THEthethe

...

¿Cómo puedo reemplazar todo 'the' por 'THE', no solo la primera vez? Con zsh son las cosas más fáciles para las que parece ser más difícil encontrar ejemplos.

Respuestas:



6

Esto debería hacer el trabajo:

VARIABLE=thethethe
echo ${VARIABLE//the/THE}
THETHETHE

3

Thereyago, tenía que ser simple:

echo ${1//the/THE}

... la doble barra lo hace, y no puedes perder el tiempo con ": s"

Por cierto, me gustaría agradecer a los sitios 'StackExchange' por existir. De todos los millones de lugares en los que uno podría hacer una pregunta, estos son, con mucho, los mejores: uno no solo casi siempre obtiene respuestas, sino que esas respuestas son invariablemente de la más alta calidad.


1

// funciona perfecto si solo estás tratando de reemplazar una palabra específica en mayúsculas mientras dejas el resto intacto. Si está intentando convertir todo a mayúsculas, puede usar ": u" en la variable

SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE

Puede verificar qué modificadores tiene disponibles en el manual de expansión y sustitución de zsh

man zshexpn
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.