Helton, eu fiz algo parecido uma vez, mas não me lembro como. Vc pode alterar o *arquivo* do prg via sed, mas não alterará o que está na partição, desta forma, vc terá de tornar o prg recurssivo e isso sempre tem custo a nível de código e de performance.
No seu lugar eu colocaria uma função que atualizaria uma lista negra, porém sendo esta um arquivo. Aí não haveria problema algum em fazer o que citei na msg anterior. Seria algo mais ou menos assim: function ListaNegra { echo ^$1$ >> ListaNegra } # main [[ $1 == --include ]] && ListaNegra $2 Na próxima 4a feira, começo um curso de Shell para a comunidade em Aracaju. Os interessados devem comunicar-se com andersonriz...@gmail.com. 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 18:07, Helton Moraes <heltonbi...@gmail.com> escreveu: > Dando continuidade a algo que poderá crescer, crescer... > > Julio, então estou pensando em fazer o seguinte (só que obviamente preciso > de uma luz): > > 1) incluir a lista de palavras num determinado trecho do próprio arquivo do > script 'statex'; > 2) incluir uma opção que edita o próprio arquivo (isso existe?). > > assim, se eu quisesse incluir a palavra <para> na lista negra, usaria algo > do tipo > > statex --include para > > novamente, pergunto: isso existe? (opção que altera o próprio script)? > > Obrigado > > Helton (lembrando sempre que em shell não se pergunta se tem como fazer, e > sim como é que se faz :oP) > > > > > Em 10 de maio de 2010 17:24, Julio C. Neves <julio.ne...@gmail.com > >escreveu: > > > Helton, > > eu não limitaria em palavras maiores de 5 caracteres. Eu criaria um > arquivo > > chamado MenosEssas que teria todas as palavras que vc não quer como do, > da, > > que, de, o, a, ..., todas antecedidas por um ^ e sucedidas por um $. > > > > Cada vez que vc encontrar uma palavra indesejada, basta inclui-la no > > arquivo > > e reprocessar. > > > > Nesse caso tire aquele aquele trecho de código que tem o limitador {5} e > > insira antes de contar (para não perder tempo contando e classificando > > atoa) > > o trecho a seguir: > > > > grep -vf MenosEssas > > > > Outra coisa que vc não pensou é em palavras com hífen e as mesmas > palavras > > no singular e plural. > > > > 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 16:47, Helton Moraes <heltonbi...@gmail.com> > > escreveu: > > > > > Buenas! > > > > > > Juntando as dicas que me mandaram, e acrescentando mais algumas opções > > > cômodas, o script STATEX (statistics of text ;o) ficou assim (vai que > > seja > > > útil pra mais alguém...): > > > > > > tr -s "[:punct:] " "\n" <FlyerVert.txt | tr "[:upper:]" "[:lower:]" |\ > > > sort | uniq -c | sort -gr | grep -E '[\ ]+[0-9][0-9]*\ [[:alpha:]]{5}' > > |\ > > > head -n 20 > > > > > > comentários: > > > tr -s > colapsa caracteres consecutivos ([:punct:] pega tudo que é > > > pontuação) > > > tr "[:upper:]" "[:lower:]" > troca maiúsculas por minúsculas; > > > sort -gr > o -g é pra que ele ordene por ordem numérica, e o r para que > > > venha a ordem numérica ao contrário (decrescente); > > > grep > ali no meio tem um {5}, que foi o valor que escolhi para tamanho > > > mínimo de palavra (senão as mais frequentes são sempre e, os, as, de, > > por, > > > para, etc.). A regex pega algum número seguido de um espaço seguido de > > uma > > > palavra com 5 caracteres, na ordem que veio do sort > > > head > mostra só os resultados mais importantes (os primeiros) > > > > > > notar que pro tr a sintaxe é [:class:] enquanto pro grep é [[:class:]] > > > (haja > > > atenção...). > > > > > > evidentemente a cereja no bolo é trocar o '5' e o '20' por $2 e $3, > > > deixando > > > o $1 para o nome de arquivo, e salvar como um script que aceite > > parâmetros. > > > > > > Desculpem se fui muito elementar > > > > > > Helton > > > > > > > > > > > > Em 10 de maio de 2010 14:56, Julio C. Neves <julio.ne...@gmail.com > > > >escreveu: > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > [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 > > > > > > > > > > > > > > > [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 > > > > > > > > > [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 > > > [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