【发布时间】:2019-06-19 09:52:24
【问题描述】:
我有一个字符串,看起来像
/foo/bar/baz59_ 5stuff.thing
如果最后一个数字(示例中为 5)大于另一个变量,我想将其加一。 9 将增加到 10。请注意,最后一个数字也可以是多位数字; “stuff.thing”也可以是任何东西;不是一个数字;所以它不能被硬编码。
上面的例子会导致/foo/bar/baz59_ 6stuff.thing
我发现了多个可以从字符串中提取最后一个数字的问题(和答案),显然可以将其用于比较。 我遇到的问题是如何确保当我进行替换时,我只替换最后一个数字(因为显然我不能将“5”替换为“6”)。谁能给点建议?
awk/sed/bash/grep 都是可行的。
【问题讨论】:
-
如果最后一个数字是 9,那么期望的结果是什么?如果是 59 岁呢?
-
如果最后一个数字是 9;那么想要的是 10. 59; 60. 99->100 等(为后代更新问题)
-
你的最后一个数字总是以下划线开头?
-
@gboffi 没有;前一个字符不固定。
-
if it's greater than a script argument你的意思是整个字符串,还是数字?如果是数字,您的意思是增加字符串中大于参数的最后一个数字,还是增加字符串中的最后一个数字,如果它大于参数?