[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Retirar informações de um .eml
From: |
amufalo |
Subject: |
Retirar informações de um .eml |
Date: |
Thu, 12 Dec 2002 13:00:40 -0000 |
User-agent: |
eGroups-EW/0.82 |
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 !
- Retirar informações de um .eml,
amufalo <=