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

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

Re: [shell-script] Retirar informações de um .eml


From: Jose NIEVIADONSKI
Subject: Re: [shell-script] Retirar informações de um .eml
Date: Fri, 13 Dec 2002 09:06:00 -0300

Oi.
   Tenta isso agora, trocando o comando grep do IP$(...) e veja se
funciona.

grep 'Received: from.*[[(].*[])]' $i |
     sed 's/^.*[[]\([^]]*\).*/\1/' |
     sed 's/^.*[(]\([^)]*\).*/\1/'

nos exemplos que você passou funcionou. Espero que funcione para todos os
demais casos.

José Augusto Martins Nieviadonski
Analista de Sistema Consultor
HSBC Bank Brasil S.A.
Treinamento de Informática




      Para: <address@hidden>
      cc:
      cco:  Jose NIEVIADONSKI/HBBR/HSBC
      Assunto:    Re: [shell-script] Retirar    informações de um .eml
Adriano da Silva Múfalo <address@hidden>

12/12/2002 04:39 PM
Favor responder a shell-script            <font size=-1></font>
José,
Não funcionou..
Eu vi q existem mais padrões do q aqueles q passei na primeira mensagem..
Coloquei abaixo a linha e o resultado dos QUATRO (ê falta de padrão) casos
q
existem..

Received: from uol.com.br (200-161-16-132.terra.com.br [200.161.16.132]
(may
be forged))
may be forged 550 Acesso bloqueado
Received: from milfogos.com.br (200-140-82-069
bsace7023.dsl.telebrasilia.net.br [200.140.82.69])
200.140.82.69 550 Acesso bloqueado
Received: from bol.com.br ([200.150.134.16])
200.150.134.16 550 Acesso bloqueado
Received: from 200.208.9.53 (EHLO nplex.globo.com) (200.208.9.53)
200.208.9.53 550 Acesso bloqueado

Olhando estes caso, dá pra ver q se tem [], pego o conteúdo entre eles..
senão, pego o conteúdo de logo após o from, ou os ultimos ()

Será q fica masi complicado desta maneira ?


----- Original Message -----
From: "Jose NIEVIADONSKI" <address@hidden>
To: <address@hidden>
Sent: Thursday, December 12, 2002 2:25 PM
Subject: Re: [shell-script] Retirar informações de um .eml



Oi.
Tenta isso.

for i in $(ls *.eml)
do
if IP=$(grep 'Received: from.*[[(].*[])]' $i | sed 's/^.*[[(]\([^])]*\).
*/\1/')
then
printf "%-15.15s 550 Acesso bloqueado\n" "$IP"
fi
done

Não pude testar extensivamente pois não tenho os asquivos, mas verifique se
funciona e da um retorno em PVT

José Augusto Martins Nieviadonski
Analista de Suporte Consultor
HSBC Bank Brasil S.A.
Treinamento de Informática




Para: address@hidden
cc:
cco:  Jose NIEVIADONSKI/HBBR/HSBC
Assunto:    [shell-script] Retirar informações de um .eml
"amufalo" <address@hidden>

12/12/2002 11:13 AM
Favor responder a shell-script            <font size=-1></font>
Olá a todos !
Estou tentando pegar a informação de um arquivo, mas não estou
conseguindo de uma forma "bonita".
As linhas q contem o dado q eu quero são os seguintes:
Received: from 255.255.255.255 (EHLO servidor.algo) (255.255.255.255)
Received: from servidor.qualquer(200-200-200-200.tipo.servidor.br
200.200.200.200])

mudei os dados, mas o padrão é sempre assim..
eu tenho vários arquivos q contem essas linhas...
sendo q em alguns arquivos tenho o primeiro tipo e em outros, o
segundo tipo.
Gostaria de saber se existe uma forma "elegante" de pegar o dados
entre os ultimos parnteses no primeiro caso, e entre os colchetes no
segundo.
Hj faço da seguinte forma:

for i in $(ls *.eml)
do
if IP=$(cat $i | egrep "Received:.*\[.*\].*" | head -1 | cut -d[ -f2
| cut -d] -f1)
then
printf "%-15.15s 550 Acesso bloqueado\n" "$IP"
fi
done

com este script, só pego o dado q preciso na segunda linha...
queria q fosse mais genérico...
algo do tipo:

egrep "Received:.*?(\[,\().*(\],\)).*"
sei lá... algo q eu aponte na string de regex só uma parte q eu quero
q retorne... nào toda a linha q combina com o padrão..
não sei se fui claro...
Alguém já fez algo parecido ?

Obrigado a todos !




This E-mail confidential. It may also be legally privileged. If you are not the 
addressee you may not copy, forward, disclose or use any part of it. If you 
have received this message in error, please delete it and all copies from your 
system and notify the sender immediately by return E-mail.
Internet communications cannot be guaranteed to be timely, secure, error or 
virus-free. The sender does not accept liability for any errors or omissions.



reply via email to

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