【发布时间】:2019-07-02 11:08:42
【问题描述】:
我有这个字符串“foo1.0_1.0”,我想根据第二个“.”后面的数字加 1,这个数字可以超过一位。
这是我的尝试:
str="foo1.0_1.0"
version="${str##*.}" # gives 0
new_version="$((version + 1))" # gives 1
echo "${str/${str##*.}/$new_version}" # gives foo1.1_1.0 (desired: foo1.0_1.1)
因为它将${str##*.}的结果作为模式。
如何做到这一点?更一般地,如何在某个字符(本例中为点)第二次出现后替换子字符串?
【问题讨论】:
标签: linux string bash replace substring