Usando coreutils sort
, como posso classificar numericamente por um valor hexadecimal (campo)? Eu estava esperando algo do tipo
sort -k3,3x file_to_sort
no entanto, tal x
não existe.
Edit: A melhor solução que eu vim até agora é:
{ echo ibase=16; cut -d' ' -f3 file_to_sort; } |
bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2-
onde cut -d' ' -f3
isola o campo de pesquisa (isto é -k3,3
- isso pode variar, é claro) e bc
faz a conversão para decimal (requer hexa maiúsculo, sem 0x
prefixo, correspondente ao meu caso). Então eu ingresso, ordeno e divido colunas.
-k3,3
? Você tem hexadecimais com 0x e todos do mesmo comprimento? Nenhuma mistura de maiúsculas / minúsculas? Se sim, eles devem classificar corretamente quando interpretados como strings. Talvez você possa nos mostrar alguns dados de exemplo?