Как выбрать каталог с самой высокой версией?

Допустим, у меня есть три каталога в моем текущем рабочем каталоге. Каждый из них ссылается на свою версию библиотеки / пакета. Я хотел бы вернуть только каталог с самой высокой версией. Например:

program program-1.0 program-2.0

Лучшее, что я смог сделать, - это просто команда find.

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

Но это обеспечивает все три каталога. Я хотел бы получить полный путь каталога program2.

0
задан 27 May 2015 в 15:44

2 ответа

Вот один способ сделать его с find, sort и tail:

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

Это также распечатает путь.

0
ответ дан 27 May 2015 в 15:44

Более новые версии утилиты 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
0
ответ дан 27 May 2015 в 15:44

Другие вопросы по тегам:

Похожие вопросы: