Eu tenho um arquivo de texto enorme, cada linha contém valor ou padrão de texto.
Como posso encontrar valores médios ou pelo menos de soma entre cada padrão?
Existem soluções awk/sed ou talvez perl?
Exemplo:
pattern1
200
300
pattern2
200
100
200
pattern3
pattern4
Saída esperada:
pattern1
250
pattern2
166
pattern3
pattern4
Awk
abordagem:A saída:
Usando as ferramentas do Gnu sed n dc podemos fazer isso:
Resultados:
Assumindo que a linha à direita não pode ser um número. Também assumindo que não há números negativos.
Configuramos um intervalo no sed para procurar linhas que contenham apenas dígitos para o padrão. Fora isso, todos são impressos como estão. Os números são anexados em hold e então na linha padrão a média é calculada usando o comando s///e do gnu sed utilizando o utilitário dc.