[英]bash replace one character from the end of string
我需要将最后一个点替换为字符串中的字符“-”。
# a='2.5.2.pl'
使用以下表达式:
# echo ${a/%./-}
我希望得到:
2.5.2-pl
但我明白了
2.5.2.pl
我注意到,仅当我需要从头到尾替换点时,它才起作用。 为什么会发生? 当然,我可以使用诸如awk,sed之类的外部程序来解决此问题,但我仅需使用bash即可解决问题。
谢谢你的建议!
我的方法有点hacky,使用了rev
但我对其进行了测试,并且可以正常工作!
echo "$(_b=$(echo "$a" | rev); _b=${_b/./-}; echo "$_b" | rev)"
基本上,我只是颠倒了字符顺序,所以最后一个.
首先使用${var/./-}
,然后使用破折号代替点,最后再次颠倒字符的顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.