Contar palavras em arquivos diferentes

1. Contar palavras em arquivos diferentes

Caio Gagliano Vieira
caiogagliano

(usa Ubuntu)

Enviado em 04/12/2013 - 14:13h

Estou tratando uns logs e quero saber quantos macs se repetem em diferentes arquivos. Não preciso saber quais são, só quantos e em quais arquivos. Existe um comando que possa fazer isso?(Pode ser com awk, sort, grep, etc...)

Separei o log em dias da semana e quero saber a recorrência de usuários.


  


2. Shell Scripting: Função para contar palavra num arquivo

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2013 - 14:23h

Dá uma olhada nessa função Bash:

Shell Scripting: Função para contar palavra num arquivo:

http://amigosdopinguim.blogspot.com.br/2013/06/shell-scripting-funcao-para-contar.html


3. Re: Contar palavras em arquivos diferentes

Caio Gagliano Vieira
caiogagliano

(usa Ubuntu)

Enviado em 04/12/2013 - 14:56h

Se entendi bem o script, ele precisa manter apenas as palavras que quer buscar semelhanças, no meu caso, os endereços mac. O problema é que assim perco a utilidade de buscar recorrência em diferentes dias. Já sei quantos usuários logam nos dias individuais e quantos nos dias da semana, individualmente. Agora quero saber combinações, tipo quem vem as terças e quintas, ou segundas e quartas, ou sextas e sábados....
Atualmente tenho 7 arquivos, um para cada dia da semana, mas não há problema nenhum em juntá-los de novo, contanto que consiga manter essa divisão de dias da semana.
Agora ficou mais claro?


4. Re: Contar palavras em arquivos diferentes

Alexandre
afteixeira

(usa openSUSE)

Enviado em 06/03/2014 - 10:13h

Vc consegue parsear o arquivo para printar somente o MAC? Se sim, fica facil.. Cola um pedaço do log..


5. consegui resolver

Caio Gagliano Vieira
caiogagliano

(usa Ubuntu)

Enviado em 10/03/2014 - 14:04h

Oi Galera, consegui resolver. Obrigado pelas dicas.
Combinei os comandos awk, grep sort e saiu.

foi mais ou menos assim:

for I in {1..30}; do
cat log-nov | grep Nov | grep " $I "| sort --key=8,9 -u | sort --key=2,3 | awk '{print $8}' > log-nov-$I;
done

for mac in $(cat log-nov-* | sort -u) ; do
k=$(grep -l $mac log-nov-* | wc -l);
if [ "$k" -lt "10" ]; then
echo $mac 0$k >> rec-nov
else
echo $mac $k >> rec-nov
fi
done

for I in { 01..09 }; do
d=$(cat rec-nov | grep " $I" | wc -l);
echo "Pessoas que acessaram $I dias do mes: $d">>rec;
done

for I in {10..30}; do
d=$(cat rec-nov | grep " $I" | wc -l);
echo "Pessoas que acessaram $I dias do mes: $d">>rec;
done


Se alguém um dia precisar fazer algo tipo isso tá aí.... :)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts