Aqui está uma maneira de fazer isso com find
, sort
e tail
:
find "$PWD" -maxdepth 1 -type d -name "program*" | sort -V | tail -1
Isso também irá imprimir o caminho.
Digamos que eu tenha três diretórios no meu diretório de trabalho atual. Cada um se refere a uma versão diferente de uma biblioteca / pacote. Gostaria de retornar apenas o diretório com a versão mais alta. Por exemplo:
program program-1.0 program-2.0
O melhor que consegui fazer foi apenas com o comando find
.
find . -maxdepth 1 -type d -name "program*" -print
Mas isso fornece todos os três diretórios. Eu gostaria do caminho completo do diretório program2
.
Aqui está uma maneira de fazer isso com find
, sort
e tail
:
find "$PWD" -maxdepth 1 -type d -name "program*" | sort -V | tail -1
Isso também irá imprimir o caminho.
As versões mais recentes do utilitário GNU sort
têm uma opção para classificar com base no número da versão: de man sort
-V, --version-sort
natural sort of (version) numbers within text
Então você poderia fazer
find . -maxdepth 1 -type d -name 'program*' | sort -V | tail -1