Como posso grep e classificar arquivos de texto usando Perl?
Eu tenho um arquivo de log simples, que é muito confuso e preciso que seja limpo. O arquivo contém cabeçalhos de log, mas todos eles são misturados. Portanto, preciso classificar os arquivos de log de acordo com os cabeçalhos de log. Não há número estático de linhas - isso significa que não há número fixo de linhas para cada cabeçalho do arquivo de texto. E estou usando o perl grep para resolver os cabeçalhos.
Os arquivos de log são mais ou menos assim:
Car LogFile Header
<text>
<text>
<text>
Car LogFile Header
<text>
Car LogFile Header
<and so forth>
Eu inventei / procurei um algoritmo simples, mas ele não parece estar funcionando. Alguém pode me guiar? Obrigado!
#!/usr/bin/perl
#use 5.010; # must be present to import the new 5.10 functions, notice
#that it is 5.010 not 5.10
my $srce = "./root/Desktop/logs/Default.log";
my $string1 = "Car LogFile Header";
open(FH, $srce);
my @buf = <FH>;
close(FH);
my @lines = grep (/$string1/, @buffer);
Depois de executar o código, não há resultado mostrado no terminal. Alguma ideia?