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