Você pode usar um caractere sentinela temporário para delimitar o número:
$ sed 's/\([0-9]\)/;/' log | sort -n -t\; -k2,2 | tr -d ';'
Aqui, o caractere sentinela é ';' - não deve ser parte de qualquer nome de arquivo que você queira classificar - mas você pode trocar o ';' com qualquer personagem que você gosta. Você tem que alterar as partes sed
, sort
e tr
, de acordo com isso.
O canal funciona da seguinte maneira: O comando sed
insere o sentinel antes de qualquer número, o comando sort
interpreta o sentinel como delimitador de campo, classifica com o segundo campo como chave de classificação numérica e o comando tr
remove o sentinel sentinela novamente.
E log
denota o arquivo de entrada - você também pode enviar sua entrada para sed
.