À l'aide de coreutils sort
, comment puis-je trier numériquement par une valeur hexadécimale (champ)? Je m'attendais à quelque chose dans le sens de
sort -k3,3x file_to_sort
cependant, un tel x
n'existe pas.
Edit: La meilleure solution que j'ai trouvée jusqu'à présent est:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
où le cut -d' ' -f3
isole le champ de recherche (c'est -k3,3
- cela peut varier, bien sûr), et bc
effectue la conversion en décimal (nécessite un hex en majuscule, sans 0x
préfixe, correspondant à mon cas). Ensuite, je joins, trie et fractionne des colonnes.
-k3,3
? Vous avez des nœuds hexagonaux commençant par 0x et tous de la même longueur? Pas de mélange de majuscules / minuscules? Si oui, ils doivent trier correctement lorsqu'ils sont interprétés comme des chaînes. Peut-être pouvez-vous nous montrer quelques exemples de données?