Bash的字符串替换某些字符与其他 [英] Bash string replacing some chars with another
本文介绍了Bash的字符串替换某些字符与其他的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像
字符串 AxxBCyyyDEFzzLMN
我要全部更换 X
和是
和以Z
与 _
使输出为
A_BC_DEF_LMN
该怎么做?
我知道了一系列
回声$字符串| TR'X''_'| TR'Y''_'
将工作,但我想这样做,在一气呵成,而无需使用管道
编辑:下面的工作。
回声$字符串| TR[XYZ]''_'
解决方案
回声$字符串| TR XYZ _
将取代每次出现 X
,是
或以Z
与 _
,使 A__BC ___ DEF__LMN
在你的例子。
回声$字符串| SED -rS / [XYZ] + / _ / G'
将取代重复的出现X
,是
或以Z
有一个 _
,使 A_BC_DEF_LMN
在你的例子。
I have a string like
AxxBCyyyDEFzzLMN
I want to replace all x
and y
and z
with _
so that the output is
A_BC_DEF_LMN
How to do that?
I know a series of
echo "$string" | tr 'x' '_' | tr 'y' '_'
will work, but I want to do that in one go, without using pipes
EDIT: The following worked
echo "$string" | tr '[xyz]' '_'
解决方案
echo "$string" | tr xyz _
would replace each occurrence of x
, y
, or z
with _
, giving A__BC___DEF__LMN
in your example.
echo "$string" | sed -r 's/[xyz]+/_/g'
would replace repeating occurrences of x
, y
, or z
with a single _
, giving A_BC_DEF_LMN
in your example.
这篇关于Bash的字符串替换某些字符与其他的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文