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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top