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 ${palavr...@]} | xargs -n1) <(echo ${!palavr...@]} | 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 - [email protected];
- 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 [email protected];
- Turmas fechadas em outras cidades ligue (21)8112-9988.
Em 10 de maio de 2010 14:24, Helton Moraes <[email protected]> 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]
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[email protected]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html