Aqui está uma maneira:
Torne os arquivos de log NUL -delimited. Isto é, faça com que cada registro termine com um caractere NUL ( ). Em seguida, você pode aproveitar o suporte para o texto NULsed -delimited encontrado em várias ferramentas ( sort , xargs , find , , etc.). Uma maneira poderia ser fazer: NUL
perl -pe 's/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/sort -szt ' ' -k1,2 file.log{.{10..1},}.NULL -o $FILE_SORTED
$1/' file.log.2 > file.log.2.NULL
- Prefira todos os registros de data e hora com
-s(é o contrário - fazer registros começarem com-z, mas com efeito ...)
Então você pode fazer:
perl -pe 's/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/perl -pe 's/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/sort -szt ' ' -k1,2 file.log{.{10..1},}.NULL -o $FILE_SORTED
$1/' file.log.2 > file.log.2.NULL
$1/' file.log{.{10..1},} | \
sort -szt ' ' -k1,2 -o $FILE_SORTED
-
NULé para uma classificação estável (para que as entradas vinculadas sejam ordenadas por ordem) -
YYYY-MM-DD HH:MM:SS,UUUativa o suporte ao texto %code% -dimimited - Alterei as chaves, pois, como observei nos comentários, os registros de data e hora do formulário %code% são lexicograficamente classificáveis. Você não precisa de classificação numérica para eles.
Ou você pode evitar todos esses arquivos temporários:
perl -pe 's/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/%pre%$1/' file.log{.{10..1},} | \
sort -szt ' ' -k1,2 -o $FILE_SORTED