windows - sorter hex-numre af forskellig længde fra kommandolinjen?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvis jeg har en fil med hex-numre af forskellig længde, f.eks.


1F
b
c


Hvordan kan jeg sortere dem fra kommandolinjen?


Linux-løsninger er velkomne, selvom jeg bruger Windows og Cygwin eller Gnuwin32.


Bemærk: Jeg kan tydeligvis ikke bruge SORT 'cos, der vil holde dem i den rækkefølge, som er forkert.

Bedste reference


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


Dette bevarer det originale store/små bogstav i de hexadecimale tal.

Andre referencer 1


Du kan bruge et awk-script til at oprette en fil, der efterlader strengene til en fast længde, sortere den resulterende fil og derefter stripe førende mellemrum på resultatet.


Det har været et stykke tid siden jeg brugte awk, men som jeg husker var det ikke svært at udstede ting retfærdigt.

Andre referencer 2


Prøv sort -n filename. -n flag som pr. Man side 'Sammenlign efter streng numerisk værdi'.


Opdatering: Som påpeget af @ barlop fungerer funktionen -n ikke for hex-numre.