Pergunta

Eu estou trabalhando em um alguns scripts de construção que eu gostaria de depender de recursos só padronizados. Eu preciso para classificar alguns arquivos com a versão. Dizem que os arquivos são bar-1. {0,2,3} bar-11. {0,2,3}.

Por padrão, ls me dá:

bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3

Conseguir o que eu quero é fácil usando 'ls -v':

bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3

O problema é que 'ls -v' não é padrão . Padrão tipo também parece não ter a opção que eu quero, que eu poderia ser olhando para versões antigas das especificações.

Alguém pode sugerir uma maneira portátil para conseguir este efeito curto de escrever minha própria rotina de classificação?

Obrigado, Rhys

Foi útil?

Solução

sort -n -t- -k2 parece fazer o que quiser. -n lhe dá numérico (ou seja, não alfabética) espécie; -t- define o separador de campo para -, e seleciona -k2 o segundo campo, ou seja, o número da versão.

Meu sort, no Ubuntu, mesmo faz a parte com o sublinhado corretamente, mas eu não tenho certeza se isso é padrão. Para ter certeza, você pode classificar pela versão menor em primeiro lugar, seguida pela versão principal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top