如何选择版本最高的目录?

如何选择版本最高的目录?

假设我当前工作目录中有三个目录。每个目录都指向一个库/包的不同版本。我只想返回版本最高的目录。例如:

program program-1.0 program-2.0

我能做的最好的就是使用find命令。

find . -maxdepth 1 -type d -name "program*" -print

但这提供了所有三个目录。我希望完整路径目录program2

答案1

GNUsort实用程序的较新版本有一个基于版本号排序的选项:从man sort

   -V, --version-sort
          natural sort of (version) numbers within text

所以你可以

find . -maxdepth 1 -type d -name 'program*' | sort -V | tail -1

答案2

以下是使用 和 实现此目的的find一种sort方法tail

find "$PWD" -maxdepth 1 -type d -name "program*" | sort -V | tail -1

这也将打印路径。

相关内容