Amigo, com certeza você pode criar uma opção no seu script para 
adicionar as palavras na lista "negra" porém a idéia de adicionar essas 
palavras no próprio script(Carregar em uma variável) não me parece ser 
uma boa idéia pois além de trabalhoso seria perigoso e desnecessário.
Seria muito mais simples e eficiente vc criar um arquivo adicional para 
cada tipo de lista que deseje criar.

Para fazer o esquema de "--include palavra" pesquise a respeito do 
getopts, com ele vc pode passar vários parametros identificados para o 
teu script e tomar decisões de como proceder dependendo de qual 
parâmetro foi passado.


Abraços
Helton Moraes 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
>
>
>
>   




------------------------------------

---------------------------------------------------------------------
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