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 - andersonriz...@gmail.com;
- 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 – el...@7seven.com.br;
- Turmas fechadas em outras cidades ligue (21)8112-9988.


Em 10 de maio de 2010 14:24, Helton Moraes <heltonbi...@gmail.com> 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: shell-script-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
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:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a