字符串替换:所有出现


13

一个简单的问题,但我找不到答案。zsh文档使我不知所措:-(

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

$ z thethethe
THEthethe

...

我如何才能将所有 “ the”替换为“ THE”,而不仅仅是第一次出现?使用zsh,这似乎是最难找到的示例。

Answers:



6

这应该可以完成以下工作:

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

3

Thereyago,它必须很简单:

echo ${1//the/THE}

...用双斜杠即可,而且您不能用“:s”

顺便说一句,我要感谢“ StackExchange”网站的存在。在成千上万个地点中,每个人可能会提出一个问题,这是迄今为止最好的-不仅几乎总是可以得到答案,而且这些答案总是质量最高。


1

//如果您只想将一个特定的单词替换为所有大写字母,而其余部分保持不变,则//效果最佳。如果您尝试将所有内容都转换为大写,则可以在变量上使用“:u”

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

您可以验证zsh扩展和替换手册中可用的修饰符

man zshexpn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.