Como selecionar um diretório com a versão mais alta?

0

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 .

    
por cdeterman 27.05.2015 / 14:44

2 respostas

1

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.

    
por krt 27.05.2015 / 15:10
3

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
    
por steeldriver 27.05.2015 / 15:05