首页 > 解决方案 > 如何在bash中的字符串中找到最后一个带小数的分组数字

问题描述

这是这个问题的后续问题,关于如何在 bash 中找到字符串中的最后一个分组数字。

其中 4 个解决方案非常适合原始问题,但我意识到如果增加对小数的支持,该解决方案将更具适应性。

所以,如果我有

string="123 abc 456.1"

我会得到

456.1

如果我有

string="123 abc 456.1."

我还是会得到

456.1

如果我有

string="123 abc 456."

我会得到

456

此外,

string="1.2 1.3"

只会回来

1.3

标签: bash

解决方案


您可以调整链接解决方案以获得这样的十进制数:

# utility function
lastNum() {
    grep -Eo '[[:digit:]]+(\.[[:digit:]]+)?' <<< "$1" | tail -1
}

# Call it as

lastNum '1.2 1.3'
1.3

lastNum '123 abc 456.1.'
456.1

lastNum "123 abc 456."
456

lastNum "123 abc 456.1"
456.1

推荐阅读