Utilizzando coreutils sort
, come posso ordinare numericamente per valore esadecimale (campo)? Mi aspettavo qualcosa del genere
sort -k3,3x file_to_sort
tuttavia, tale x
non esiste.
Modifica: la migliore soluzione che ho trovato finora è:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
dove cut -d' ' -f3
isola il campo di ricerca (questo è -k3,3
- questo può variare, ovviamente) e bc
fa la conversione in decimale (richiede esadecimale maiuscolo, senza 0x
prefisso, corrispondente al mio caso). Quindi unisco, ordina e divido le colonne.
-k3,3
? Hai nubers esadecimali che fissano con 0x e tutti della stessa lunghezza? Nessun mix di maiuscolo / minuscolo? Se sì, dovrebbero essere ordinati correttamente quando interpretati come stringhe. Forse puoi mostrarci alcuni dati di esempio?