Obrigado pelas dicas!! Funcionou beleza!! ;) On 1/17/07, Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> wrote: > > Ops, acho que chupei uma balinha com os teus arquivos, mas o > raciocinio continua o mesmo, basta usar a exclude.list no grep > > grep -vf /../exclude.list recipients > > Beeem mais simples, desculpe complicar :/ > > On 1/17/07, Tiago Barcellos Peczenyj <[EMAIL > PROTECTED]<tiago.peczenyj%40gmail.com>> > wrote: > > amigo, > > > > para vc executar a string conforme o seu significado vc precisa usar o > > comando eval > > (acho que foi tirado do livro do Julio... hehe) > > > > PIPE='|' > > > > ls $PIPE grep X # da erro > > > > eval ls $PIPE grep X # funciona! > > > > Entretanto me parece que o seu script não vai funcionar da maneira > > como vc deseja. > > > > por que ? > > > > A variavel i vai receber cada string do seu arquivo, e não cada linha > > $ for i in `cat exclude.list `; do echo $i ; done > > teste > > OK > > teste1 > > OK > > teste2 > > OK > > teste3 > > OK > > > > Eu faria assim: > > > > # pego a lista de linhas que não tem a palavra OK (ex: pega NOK) > > grep -vw "OK" exclude.list | tratamento > /tmp/lista > > > > o que é tratamento? se vc usa uma palavra como NOK, vc deve removela > > com sed ou algo assim. se não usa nada alem da string que vc quer > > usar, basta não usar nada > > > > grep -vw "OK" exclude.list | tr -d ' ' > /tmp/lista > > > > # por que estou removendo espaços em branco? veja abaixo > > > > grep -vf /tmp/list recipients # uso a lista como fonte de pesquisa e > > inverto a busca > > > > Didaticamente: > > > > $ cat exclude.list # o teste4 e 5 não deve aparecer! > > teste OK > > teste1 OK > > teste2 OK > > teste3 OK > > teste4 > > teste5 > > > > $ grep -vw "OK" exclude.list # humm! > > teste4 > > teste5 > > > > $ grep -vw "OK" exclude.list | tr -d ' ' > /tmp/list > > > > $ cat recipients # eis a lista onde o teste4 e 5 nao podem aparecer > > teste1 > > teste2 > > teste3 > > teste4 > > teste5 > > teste6 > > teste7 > > teste8 > > teste9 > > teste10 > > > > $ grep -vf /tmp/list recipients # tcharam! > > teste1 > > teste2 > > teste3 > > teste6 > > teste7 > > teste8 > > teste9 > > teste10 > > > > Acho que é isso que vc quer. > > > > []´s Tiago > > > > On 1/17/07, Vini < [EMAIL PROTECTED] <viopniop%40gmail.com>> wrote: > > > > > > > > > > > > > > > > > > > > > Pessoal, > > > > > > estou tentando executar o script abaixo mais ele ta dando erro.... > > > > > > #!/bin/bash > > > > > > for i in `cat /etc/postfix/exclude.list` > > > do > > > if [ $i <> "OK" ] > > > then > > > exclude="$exclude | grep -v $i" > > > fi > > > done > > > > > > cat /etc/postfix/recipients $exclude > > > ### FIM #### > > > > > > exclude.list : > > > > > > teste1 > > > > > > recipients: > > > > > > teste OK > > > teste1 OK > > > teste2 OK > > > teste3 OK > > > > > > se eu der um echo na ultima linha (echo "cat /etc/postfix/recipients > > > $exclude") e executar a saida dele funciona, mais se eu tentar > executar o > > > script e ele retorna a seguinte mensagem de erro: > > > > > > teste OK > > > teste1 OK > > > teste2 OK > > > teste3 OK > > > cat: |: Arquivo ou diretório não encontrado > > > cat: grep: Arquivo ou diretório não encontrado > > > teste1 > > > > > > Alguem tem idéia do que pode ser? > > > > > > -- > > > Atenciosamente, > > > Vinicius. > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > -- > > Tiago B Peczenyj > > Linux User #405772 > > > > # cd /pub > > # more beer > > > > -- > Tiago B Peczenyj > Linux User #405772 > > # cd /pub > # more beer > > >
-- Atenciosamente, Vinicius. [As partes desta mensagem que não continham texto foram removidas]
