Primeiro, tentei um pouco de shell.
while read line; do echo -n "$line" | wc -c; done< arquivao | sort | uniq -c
Isso deveria apresentar o número de linhas com determinado comprimento e o número de ocorrências de cada comprimento (não há muita variação nos comprimentos das linhas, embora haja muitas linhas).Infelizmente, não tive paciência de deixar esta pequena solução terminar. Resolvi averiguar se o Perl seria mais rápido.
perl -MData::Dumper -n -e '$n{length($_)}++; END {print Dumper(%n)}' arquivao
A solução é bem simples e muito mais rápida que a primeira. Com os parâmeteros -n e -e, o bloco de código é aplicado a cada linha do arquivo (último parâmetro). Cada tamanho de linha vira uma chave no hash %n e é incrementada a cada ocorrência. No fim, uso o módulo Data::Dumper para apresentar o que há dentro de %n.
Nenhum comentário:
Postar um comentário