Допустим, у меня есть три каталога в моем текущем рабочем каталоге. Каждый из них ссылается на свою версию библиотеки / пакета. Я хотел бы вернуть только каталог с самой высокой версией. Например:
program program-1.0 program-2.0
Лучшее, что я смог сделать, - это просто команда find
.
find . -maxdepth 1 -type d -name "program*" -print
Но это обеспечивает все три каталога. Я хотел бы получить полный путь каталога program2
.
Вот один способ сделать его с find
, sort
и tail
:
find "$PWD" -maxdepth 1 -type d -name "program*" | sort -V | tail -1
Это также распечатает путь.
Более новые версии утилиты GNU sort
имеют опцию отсортировать на основе номера версии: от man sort
-V, --version-sort
natural sort of (version) numbers within text
, Таким образом, Вы могли сделать
find . -maxdepth 1 -type d -name 'program*' | sort -V | tail -1