bash - 如何在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
解决方案
您可以调整链接解决方案以获得这样的十进制数:
# 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
推荐阅读
- powershell - 尝试在heroku 上部署strapi 时出错。grep 和 cut 不识别
- javascript - 在 React 中渲染具有不同状态的组件数组
- java - 使用 Java 从 YAML 文件中获取值
- python - 并非所有变量都显示在 jupyter notebook 的条形图中
- dictionary - Anylogic - 在 GIS 地图上放置资源
- android - 无法在我的 Android 应用程序中禁用软键盘
- audio - 如何标准化正在进行的累积和的样本?
- javascript - 如何禁用提交按钮,直到所有输入类都有 class="valid"
- java - Micronaut,db-scheduler:当前不存在事务。考虑在周围的方法上声明@Transactional
- javascript - 使用 bgcolor 隐藏所有表格行