案例方案:
$ var="This is my ___ va__riable ___for___ num_ber ___45___"
$ echo $var
This is my ___ va__riable ___for___ the num_ber ___45___
我希望var
转换,以便___N___
(3个引导_
,任意数字和3个尾随_
)变为N
,这就是:只留下数字。
因此得到的var
应为:
This is my ___ va__riable ___for___ the num_ber 45
请注意,只会删除围绕数字的3个连续_
。剩下的就剩下了。
我怎么能这样做?
我的(弱)方法:
echo $var | sed 's/___[0-9]___/[0-9]/'
(我正在考虑sed
用相同数字替换号码的某种方式,但我不知道是否可以使用sed
完成此操作。
答案 0 :(得分:3)
$ echo "$var" | sed 's/___\([0-9][0-9]*\)___/\1/g'
您还可以使用扩展正则表达式:
$ echo "$var" | sed -E 's/___([0-9]+)___/\1/g'