Salve!

Ainda não entendi exatamente o que vc está fazendo, mas dei uma 
modificada no seu script. Veja e me diga se atende.

Apesar de ser fã do awk, procurei utilizar bash puro + grep, por 
entender que o awk não se aplica a este caso.

Caso alguma coisa não fique clara, e depois de consultar o 'man bash', 
poste que esclarecerei.

while read ; do
    linha=($REPLY) #Convertendo linha em array
    codigo01=${linha[5]}
    [EMAIL PROTECTED]
    codigo01=${codigo01%%:}
    codigo02=${codigo02%%)}

    if [ "$codigo01" != "command" -a "$codigo02" != "command" ]; then
        echo "INICIOBR" >> resultado01.txt
        egrep "($codigo01|$codigo02)" log_teste02.txt |
           grep -m1 "postfix/qmgr\[" >> resultado01.txt
        egrep "($codigo01|$codigo02)" log_teste02.txt |
           grep -m1 "postfix/smtp\[" >> resultado01.txt
    fi
done < log_teste.txt


Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP

Rodrigo Monteiro escreveu:
> Fala Fabiano.
> 
> 
> On 12/13/05, Fabiano Caixeta Duarte <[EMAIL PROTECTED]> wrote:
> 
>>Salve!
>>
>>Mande um trecho dos arquivos de entrada e descreva o objetivo da saída
>>para entendermos melhor e podermos ajudar.
> 
> 
> #log_teste.txt
> Oct  5 00:00:07 spam postfix/lmtp[7650]: DB5C55A0EF9:
> to=<[EMAIL PROTECTED]>, relay=127.0.0.1[127.0.0.1], delay=4, status=sent
> (250 2.6.0 Ok, id=07647-01-71, from MTA: 250 Ok: queued as
> 954FD5A0EFB)
> Oct  5 00:00:24 spam postfix/lmtp[7698]: 1B34E5A0EF9:
> to=<[EMAIL PROTECTED]>, relay=127.0.0.1[127.0.0.1], delay=2, status=sent
> (250 2.6.0 Ok, id=07649-01-39, from MTA: 250 Ok: queued as
> 1F1C05A0EFA)
> 
> 
> #log_teste02.txt
> Oct  5 00:00:07 spam postfix/qmgr[19500]: 954FD5A0EFB:
> from=<[EMAIL PROTECTED]>, size=1030609, nrcpt=1 (queue active)
> Oct  5 00:00:07 spam amavis[7647]: (07647-01-71) Passed,
> <[EMAIL PROTECTED]> -> <[EMAIL PROTECTED]>, Message-ID:
> <[EMAIL PROTECTED]>, Hits: -
> Oct  5 00:00:07 spam postfix/lmtp[7650]: DB5C55A0EF9:
> to=<[EMAIL PROTECTED]>, relay=127.0.0.1[127.0.0.1], delay=4, status=sent
> (250 2.6.0 Ok, id=07647-01-71, from MTA: 250 Ok: queued as
> 954FD5A0EFB)
> Oct  5 00:00:09 spam postfix/smtp[6653]: C447C5A0F02:
> to=<[EMAIL PROTECTED]>, relay=IP[IP], delay=15, status=sent (250 Message
> accepted for delivery)
> 
> 
> while read linha ; do
>    codigo02=`echo "$linha" | awk '{print $NF}' | cut -d')' -f1`
>    codigo01=`echo "$linha" | awk '{print $6}' | cut -d':' -f1`
>    if [ "$codigo01" != "command" -a "$codigo02" != "command" ] ; then
>        echo "INICIOBR" >> resultado01.txt
>        grep '\('"$codigo01"'\|'"$codigo02"'\)' log_teste02.txt | grep
> -m1 'postfix\/qmgr\[' >> resultado01.txt
>        grep '\('"$codigo01"'\|'"$codigo02"'\)' log_teste02.txt | grep
> -m1 'postfix\/smtp\[' >> resultado01.txt
>    fi
> done < log_teste.txt
> 
> Cada linha do log_teste.txt tem dois códigos: o $codigo01 e $codigo02
> O que eu quero é percorrer todas as linhas do log_teste.txt e fazer um
> outro arquivo com somente a primeira ocorrência da linha desses
> códigos da linha 'postfix\/qmgr\[' e 'postfix\/smtp\['
> Consegui explicar alguma coisa? :P
> Mas acho que com o código que mandei da pra entender agora...
> 
> []s
> 
> 
> 
> 
> 
>>Fabiano Caixeta Duarte
>>Consultor em soluções para Redes de Computadores
>>Ribeirão Preto - SP
>>
>>
>>Rodrigo Monteiro escreveu:
>>
>>>Essa parte do script está demorando bastante (algumas horas) para ser 
>>>executada.
>>>Alguém tem uma sugestão de como deixar mais leve (rápida) a sua execução?
>>>Segue a parte em questão...
>>>
> 
> 
> --
> Rodrigo Monteiro
> "Free as in Freedom, not free as in free beer"
> Linux User # 403730
> JID: [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> 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: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>  
> 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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
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:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a