Isso é um pouco rotativo demais para o meu gosto, mas pode ser interessante para você:
perl -p -e '
BEGIN{
@months=qw(jan feb mar apr may jun jul aug sep oct nov dec);
$month_number{$_}=++$i for @months;
$months_regex= join "|",@months;
}
s/^\s*($months_regex)[a-z]*\s+/$month_number{lc $1}-/i'
/var/log/syslog
Isso imprimirá (para stdout) as linhas de registro com a data no formato MM-DD (sem zerar preenchimento para números de mês), o que parece ser uma análise confortável. Isso lida com os nomes dos meses dados em nomes completos e por mês, dados em forma de três letras, independentemente do caso.
EDITAR
Se você deseja zerar preenchimento para números de mês, basta substituir ++$i
por sprintf "%02d",++$i
EDIT 2 Dois erros corrigidos graças aos comentários de l0b0 abaixo:
- Adicionado "pode" à lista de meses
- Alterou a receita do preenchimento zero para
sprintf "%02d", ++$i