substituições de string: todas as ocorrências


13

Uma pergunta simples, mas não consigo encontrar a resposta. a documentação do zsh me impressiona :-(

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

$ z thethethe
THEthethe

...

Como posso substituir todos os 'the' por 'THE', não apenas a primeira ocorrência? Com o zsh, são as coisas mais fáceis que parecem ser as mais difíceis de encontrar exemplos.

Respostas:



6

Isso deve fazer o trabalho:

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

3

Thereyago, tinha que ser simples:

echo ${1//the/THE}

... a barra dupla faz isso e você não pode brincar com ": s"

BTW, gostaria de agradecer aos sites 'StackExchange' por existirem. De todos os zilhões de lugares que se pode fazer uma pergunta, esses são de longe os melhores - não apenas quase sempre obtemos respostas, mas essas respostas são invariavelmente da mais alta qualidade.


1

// funciona perfeitamente se você estiver apenas tentando substituir uma palavra específica para todas as letras maiúsculas e deixar o restante intocado. Se você estiver tentando converter tudo em maiúscula, pode usar ": u" na variável

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

Você pode verificar quais modificadores estão disponíveis no manual de expansão e substituição do zsh

man zshexpn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.