有命令ls -1 | grep war | sort -V | tail -n1
来排序和列出 war 文件名,例如abc-1.4.3.12.war。
sort 命令中的 V 选项有什么用?
答案1
https://www.gnu.org/software/coreutils/manual/html_node/sort-inspiration.html
'-V'
'--版本排序'按版本名称和编号排序。它的行为类似于标准排序,不同之处在于每个十进制数字序列在数字上都被视为索引/版本号。 (看有关版本排序的详细信息.)
例子:
标准排序:
$ printf '%s\n' abc-1.4.3.12.war abc-12.1.war abc-1.11.war | sort
abc-1.11.war
abc-12.1.war
abc-1.4.3.12.war
按版本排序:
$ printf '%s\n' abc-1.4.3.12.war abc-12.1.war abc-1.11.war | sort -V
abc-1.4.3.12.war
abc-1.11.war
abc-12.1.war
但您也可以使用-v
中的选项ls
,无需使用grep
和sort
,这里:
$ touch abc-1.4.3.12.war abc-12.1.war abc-1.11.war
$ ls -1 *war
abc-1.11.war
abc-12.1.war
abc-1.4.3.12.war
$ ls -1v *war
abc-1.4.3.12.war
abc-1.11.war
abc-12.1.war
答案2
男人排序说
-V, --version-sort natural sort of (version) numbers within text
https://stackoverflow.com/questions/4493205/unix-sort-of-version-numbers