[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
urgente (melhora no meu script)
From: |
Rodrigo Monteiro |
Subject: |
urgente (melhora no meu script) |
Date: |
Fri, 27 May 2005 05:54:26 -0700 (PDT) |
pessoal, preciso da ajuda de vcs. tenho um script que
le varios arquivos gigantes (1.5GB), processa as
informacoes e salva em outros arquvos.
as linhas desses arquivos sao diferentes umas das
outras, ou seja, nao da pra usar o "cut -d' ' -fX" nem
"awk '{print $X}' pois nao sei as ordens dos campos. o
que eu quero eh pegar somente a "data e hora", o "to"
e o "from".
segue abaixo umas das linhas de um log na integra e o
que eu gerei.
==========
original
==========
May 25 08:02:05 spam postfix/smtpd[27118]: NOQUEUE:
reject: RCPT from unknown[222.108.72.107]: 554 Service
unavailable; Client host [222.108.72.107] blocked
using list.dsbl.org;
http://dsbl.org/listing?222.108.72.107;
from=<address@hidden> to=<address@hidden>
proto=SMTP helo=<222.108.72.107>
==========
processado
==========
May 25 08:02:05 from=<address@hidden>
to=<address@hidden>
==========
o meu script esta aqui em baixo. o que eu gostaria eh
saber se existe um jeito mais rapido e mais facil de
fazer, pois nao gostei do meu script (apesar de estar
fazendo o que eu quero).
==========
script
==========
rm teste0* 2> /dev/null
while read linha ; do
teste=`grep "to=<" $1 | grep "from=<" | grep
"$linha" | head -n1`
if [ ! -z "$teste" ] ; then
grep "to=<" $1 | grep "from=<" | grep "$linha"
>> teste01_"$linha"
fi
done < rcpthosts.txt
ls -1 teste01_* > arquivos.txt
while read linha02 ; do
teste=`wc -l $linha02 | awk '{print $1}'`
for i in `seq 1 $teste` ; do
alinha=`head -n"$i" $linha02 | tail -n1`
teste02=`echo "$alinha" | awk '{print NF}'`
data=`echo $alinha | awk '{print $1,$2,$3}'`
for j in `seq 1 "$teste02"` ; do
teste03=`echo "$alinha" | awk '{print
$"'$j'"}'`
case $teste03 in
'to=<'*)
to=$teste03;;
'from=<'*)
from=$teste03;;
esac
done
echo "$data" "$from" "$to" >>
teste02_"$linha02"
done
done < arquivos.txt
==========
espero a ajuda de vcs.
[]s
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
- urgente (melhora no meu script),
Rodrigo Monteiro <=