Pregunta

Estoy trabajando en un algunos scripts de construcción que me gustaría que depender sólo las características estandarizadas. Necesito clasificar algunos archivos por versión. Decir que los archivos son bar-1. {0,2,3} Barra-11. {0,2,3}.

Por defecto, ls me da:

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

El conseguir lo que quiero es fácil de usar 'ls -v':

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

El problema es que 'ls -v' no es estándar . Estándar tipo también parece carecer de la opción que quiera, aunque podría ser mirando las viejas versiones de las especificaciones.

Puede alguien sugerir una manera portátil para lograr este efecto a corto de escribir mi propia rutina de ordenación?

Gracias, Rhys

¿Fue útil?

Solución

sort -n -t- -k2 parece hacer lo que quiera. -n le da numérico especie (es decir, no alfabético); -t- fija el separador de campo a -, y -k2 selecciona el segundo campo, es decir, el número de versión.

Mi sort, en Ubuntu, incluso hace la parte con el subrayado correctamente, pero no estoy seguro si eso es estándar. Para estar seguro, usted podría ordenar por la versión menor primero, y luego por la versión principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top