gpt4 book ai didi

linux - 在字符 bash 第二次出现后替换子字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:48 24 4
gpt4 key购买 nike

我有这个字符串“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##*.} 的结果作为模式。

如何实现?更一般地说,如何在某个字符(在本例中为点)第二次出现后替换子字符串?

最佳答案

使用 awk,您可以使用点作为分隔符并增加第三个字段:

awk 'BEGIN{FS=OFS="."} {$3++} 1' <<< "$str"

foo1.0_1.1

关于linux - 在字符 bash 第二次出现后替换子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54588493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com