substitutions de chaînes: toutes les occurrences


13

Une question simple, mais je ne trouve pas la réponse. la documentation zsh me submerge :-(

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

$ z thethethe
THEthethe

...

Comment puis-je remplacer tous les «the» par «THE», pas seulement la première occurrence? Avec zsh, ce sont les choses les plus simples qui semblent être les plus difficiles à trouver.

Réponses:



6

Cela devrait faire le travail:

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

3

Là, il fallait que ce soit simple:

echo ${1//the/THE}

... la double barre oblique le fait, et vous ne pouvez pas jouer avec ": s"

BTW, je tiens à remercier les sites «StackExchange» pour avoir existé. De tous les millions d'endroits où l'on peut poser une question, ce sont de loin les meilleurs - non seulement on obtient presque toujours des réponses, mais ces réponses sont toujours de la plus haute qualité.


1

// fonctionne parfaitement si vous essayez seulement de remplacer un mot spécifique dans toutes les majuscules tout en laissant le reste intact. Si vous essayez de tout convertir en majuscules, vous pouvez utiliser ": u" sur la variable

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

Vous pouvez vérifier les modificateurs dont vous disposez dans le manuel d'extension et de substitution zsh

man zshexpn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.