[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Erro num script pra contar frequência das palavras
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Erro num script pra contar frequência das palavras |
Date: |
Mon, 10 May 2010 14:56:38 -0300 |
Fala Helton,
acho que vc queria fazer:
$ echo "$Var"
o problema é que o resultado digo o resultado repito o resultado aparece
assim
$ tr ' ' '\n' <<< $Var | sort | uniq -c | sort -r
4 o
3 resultado
1 repito
1 que
1 problema
1 é
1 digo
1 assim
1 aparece
Porém existem outras soluções:
1 - Usando Arrays Associativas, a partir do Bash 4.0
$ for palavra in $Var; do let palavras[$palavra]++; done
$ paste <(echo ${palavras[@]} | xargs -n1) <(echo ${!palavras[@]} | xargs
-n1)
1 digo
1 que
1 repito
3 resultado
1 assim
1 é
4 o
1 aparece
1 problema
2- Usando awk:
awk '{
for (w = 1; w <= NF; w++) conta[$w] ++
}
END {
for (w in conta) print conta[w], w | "sort -nr"
}' /arquivo/que/deseja/contar
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Aracaju turma de Shell em 12/05 - address@hidden;
- DF turma de Shell em 12/06 - ligue (61)3223-3000;
- RJ turma de Shell em 14/06 - ligue (21)2210-6061;
- Floripa turma de Shell e Zenity 12/07 address@hidden;
- Turmas fechadas em outras cidades ligue (21)8112-9988.
Em 10 de maio de 2010 14:24, Helton Moraes <address@hidden> escreveu:
>
>
> Caros colegas
>
> Primeiramente, caso alguém conheça alguma técnica ou programa ou script
> pronto (link) para o que estou tentando fazer, aceito a sugestão! Vamos lá:
>
> Estou encarregado de dar uma melhorada no estilo de um texto publicitário,
> e
> como bom nerd pretendo usar o shell para isso, contando as palavras
> repetidas de um arquivo de texto. Para isso, tentei usar um oneliner com a
> seguinte sequência:
>
> cat (carrega o arquivo)
> tr (trocar espaços por novas linhas \n)
> uniq -ci (contar as linhas repetidas ignorando maiúscula/minúscula)
> sort -r (para que as palavras mais frequentes apareçam na parte baixa do
> terminal assim que eu der ENTER)
>
> ficou assim:
>
> cat /home/helton/Desktop/test.txt | tr " " "\n" | uniq -c | sort -r
>
> O PROBLEMA é que o resultado é como o seguinte:
>
> 1 o
> 1 problema
> 1 é
> 1 que
> 1 o
> 1 resultado
> 1 digo
> 1 o
> 1 resultado
> 1 repito
> 1 o
> 1 resultado
> 1 aparece
> 1 assim
>
> ou seja, mesmo que tenha palavras repetidas no arquivo ele aparece uma
> ocorrência por linha precedido do 1.
>
> Então, como bom pai (do script), pergunto: "onde foi que eu errei?"
>
> Obrigado
>
> Helton
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
- Erro num script pra contar frequência das palavras, Helton Moraes, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, André Saunite, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Eri Ramos Bastos, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, miranda, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras,
Julio C. Neves <=
- Re: [shell-script] Erro num script pra contar frequência das palavras, Helton Moraes, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Julio C. Neves, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Helton Moraes, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Julio C. Neves, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Lawrence Waclawiak, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Julio C. Neves, 2010/05/10
- Re: [shell-script] Erro num script pra contar frequência das palavras, Helton Moraes, 2010/05/10