首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符串中的某些字符替换为其他字符

将字符串中的某些字符替换为其他字符
EN

Stack Overflow用户
提问于 2010-05-20 13:18:39
回答 4查看 632.6K关注 0票数 346

我有一个类似AxxBCyyyDEFzzLMN的字符串,我想用_替换所有出现的xyz

我如何才能做到这一点?

我知道echo "$string" | tr 'x' '_' | tr 'y' '_'可以工作,但我想一气呵成,不使用管道。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-20 13:27:28

代码语言:javascript
复制
echo "$string" | tr xyz _

会将每次出现的xyz替换为_,在示例中给出A__BC___DEF__LMN

代码语言:javascript
复制
echo "$string" | sed -r 's/[xyz]+/_/g'

将用单个_替换重复出现的xyz,在您的示例中给出A_BC_DEF_LMN

票数 418
EN

Stack Overflow用户

发布于 2010-05-20 13:21:01

使用Bash Parameter Expansion

代码语言:javascript
复制
orig="AxxBCyyyDEFzzLMN"
mod=${orig//[xyz]/_}
票数 340
EN

Stack Overflow用户

发布于 2014-12-09 08:14:09

您可能会发现此链接很有帮助:

http://tldp.org/LDP/abs/html/string-manipulation.html

总体而言,

要将第一个匹配的$substring替换为$replacement,请执行以下操作:

代码语言:javascript
复制
${string/substring/replacement}

要使用$replacement替换所有匹配的$substring,请执行以下操作:

代码语言:javascript
复制
${string//substring/replacement}

编辑:请注意,这适用于名为$string的变量。

票数 152
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2871181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档