shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Grep


From: Vini
Subject: Re: [shell-script] Grep
Date: Wed, 17 Jan 2007 14:15:02 -0200

Obrigado pelas dicas!! Funcionou beleza!!   ;)

On 1/17/07, Tiago Barcellos Peczenyj <address@hidden> 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 
> <address@hidden<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 < address@hidden <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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]