sortinger les nombres hexadécimaux de différentes longueurs à partir de la ligne de commande?

Si j’ai un fichier de nombres hexadécimaux de longueur différente, par exemple

1F b c 

Comment puis-je les sortinger depuis la ligne de commande?

Les solutions Linux sont les bienvenues, bien que j’utilise Windows et cygwin ou gnuwin32.

Note: Je ne peux clairement pas utiliser SORT ‘cos qui les maintiendra dans cet ordre, ce qui est faux.

 cat thefile | while read line; do printf "%d %s\n" "0x$line" "$line"; done | sort -n | awk '{print $2}' 

Cela conserve les majuscules / minuscules d’origine des nombres hexadécimaux.

Vous pouvez utiliser un script awk pour créer un fichier qui adapte les chaînes à une longueur fixe, sortinge le fichier obtenu, puis supprime les espaces au début du résultat.

Cela fait un moment que je n’ai pas utilisé awk, mais si je me souviens bien, il n’était pas difficile de produire des justifications justifiées.

Essayez de sort -n filename . L’indicateur -n selon la page de manuel “se compare en fonction de la valeur numérique de la chaîne”.

Mise à jour: comme indiqué par @barlop, l’option -n ne fonctionne pas pour les nombres hexadécimaux.