Não é uma solução POSIX, mas a classificação GNU oferece a opção -g
, que suporta uma gama mais ampla de especificações numéricas, incluindo o infinito. De link -
‘-g’
‘--general-numeric-sort’
‘--sort=general-numeric’
Sort numerically, converting a prefix of each line to a long double-precision
floating point number. See Floating point. Do not report overflow, underflow, or
conversion errors. Use the following collating sequence:
Lines that do not start with numbers (all considered to be equal).
NaNs (“Not a Number” values, in IEEE floating point arithmetic) in a
consistent but machine-dependent order.
Minus infinity.
Finite numbers in ascending numeric order (with -0 and +0 equal).
Plus infinity.
Use this option only if there is no alternative; it is much slower than
--numeric-sort (-n) and it can lose information when converting to floating
point.
Dos meus próprios testes, parece que qualquer linha que comece com Inf
(qualquer combinação de maiúsculas / minúsculas) aparecerá após qualquer número.
Caso contrário, não há sequências de caracteres que sejam classificadas de forma confiável após números usando sort -n
. A classificação GNU parece tratar todas as outras seqüências primeiro como zero, colocando os números negativos depois, mas antes os positivos. O que você poderia fazer, se são os timestamps que estão sendo classificados, é usar o valor máximo para um timestamp de 64 bit mais um:
9,223,372,036,854,775,808
Este é mais alguns dígitos do que você começou!