查找最大数字的 shell 命令。但问题是小数点后的两位数不被认为是最高的

查找最大数字的 shell 命令。但问题是小数点后的两位数不被认为是最高的

使用 shell 脚本查找变量中提到的值中的最大数字。

例如

VAR=“2011.2/2009.1/2011.10”

Shell 脚本应识别 2011.10 是三个中最高的输出应为 2011.10

如果 VAR="2011.10/2011.1" 输出应为 2011.10

如果 VAR="2010.1/2011.2" 输出应为 2011.2

这里的问题是小数点后两位数被认为小于小数点后一位数。

答案1

你要求的更像是版本数字比较。

tr+sort+head解决方案:

v="2011.2/2009.1/2011.10"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.10

测试用例:

v="2011.1/2011.2"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.2

v="2011.1/2011.2/2011.101"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.101

相关内容