manière portable pour obtenir -v ls (à savoir de tri par la version)?
Question
Je travaille sur un certains de créer des scripts que je voudrais dépendre de fonctionnalités normalisées seulement. Je dois trier des fichiers par la version. Dire que les fichiers sont bar-1. {0,2,3} bar-11. {0,2,3}.
Par défaut, ls me donne:
bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3
Obtenir ce que je veux est facile en utilisant ls -v ':
bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3
Le problème est que 'ls -v' est pas standard . href="http://www.opengroup.org/onlinepubs/7990989775/xcu/sort.html" semble également manquer l'option que je veux, mais je pourrais être regardant les anciennes versions des spécifications.
Quelqu'un peut-il proposer une solution portable pour réaliser ce court effet d'écrire ma propre routine de tri?
Merci, Rhys
La solution
sort -n -t- -k2
semble faire ce que vous voulez. -n
vous donne tri numérique (par exemple pas alphabétique); -t-
définit le séparateur de champ à -
, et -k2
sélectionne le second champ, à savoir le numéro de version.
Mon sort
, sur Ubuntu, fait même la partie avec le trait de soulignement correctement, mais je ne suis pas sûr si cela est standard. Pour être sûr, vous pouvez trier par la version mineure d'abord, puis par la version majeure.