使用 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