Moyen portable pour obtenir le drapeau ls ‘-v (c’est-à-dire sortinger par version)?

Je travaille sur des scripts de construction que je souhaite dépendre uniquement des fonctionnalités standardisées. Je dois sortinger certains fichiers par version. Supposons que les fichiers sont de type 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” n’est pas standard . Le sorting standard semble également manquer de l’option que je souhaite, bien que je puisse examiner les anciennes versions des spécifications.

Quelqu’un peut-il suggérer un moyen portable pour atteindre cet effet sans avoir à écrire ma propre routine de sorting?

Merci, Rhys

sort -n -t- -k2 semble faire ce que vous voulez. -n vous donne un sorting numérique (pas alphabétique); -t- définit le séparateur de champs sur - et -k2 sélectionne le second champ, c’est-à-dire le numéro de version.

Mon sort sur Ubuntu fait même la partie avec le soulignement correctement, mais je ne suis pas sûr que ce soit standard. Pour être sûr, vous pouvez sortinger par la version mineure en premier, puis par version majeure.