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

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

RE: [shell-script] Arquivo com espaço e posição diferente


From: Luciano Estevam Rangel
Subject: RE: [shell-script] Arquivo com espaço e posição diferente
Date: Wed, 20 May 2009 09:39:58 -0300

Pessoal como prometido estou enviando a entrada para meu script e a saída dele

Só existe um problema também que eu não consegui resolver, por eu ter precisado 
retirar o "=" com o sed para poder colocar as variáveis em uma array e testar 
se o campo e from ou to para pegar o próximo campo, por não saber em que 
posição se encontra. Os arquivos que tiverem = no nome vão ficar em branco...No 
exemplo abaixo o arquivo "=?iso-8859-1?Q?Sociedade_de_informa=E7=E3o.doc" ficou 
no report como " ?iso-8859-1?Q?Sociedade_de_informa E7 E3o.doc? "

Segue junto o script novamente para quem quiser dar uma melhorada ou me dar uma 
luiz para resolver este problema Obrigado a todos.

 

***************************************************************************************************************************************

 

ENTRADA:

May 18 13:13:20 teste-mail postfix/cleanup[17948]: 415011D78237: reject: header 
Content-Type: 
application/msword;??name="=?iso-8859-1?Q?Sociedade_de_informa=E7=E3o.doc?=" 
from Zeca.zeca.local[192.168.0.22]; from=<address@hidden> to=<address@hidden> 
proto=ESMTP helo=<zeca>: 5.7.1 TESTE-MAIL - SEU ANEXO rma FOI RECUSADO PELO 
NOSSO SERVIDOR, TENTE REENCAMINHA-LO ZIPADO OU EM CASO DE DUVIDAS ENTRE EM 
CONTATO COM O ADMINISTRADOR PELO E-MAIL address@hidden DEPARTAMENTO DE 
TECNOLOGIA TESTE SERVICOS.

May 19 17:10:14 teste-mail postfix/cleanup[13589]: 56FC11D782CB: reject: header 
Content-Disposition: attachment; filename="porta caneta de bambi Luc Brad.wmv" 
from web63407.mail.re1.yahoo.com[69.147.97.47]; from=<address@hidden> 
to=<address@hidden> proto=SMTP helo=<web63407.mail.re1.yahoo.com>: 5.7.1 
TESTE-MAIL - SEU ANEXO wmv FOI RECUSADO PELO NOSSO SERVIDOR, TENTE 
REENCAMINHA-LO ZIPADO OU EM CASO DE DUVIDAS ENTRE EM CONTATO COM O 
ADMINISTRADOR PELO E-MAIL address@hidden DEPARTAMENTO DE TECNOLOGIA TESTE 
SERVICOS

May 19 17:49:48 teste-mail postfix/cleanup[14033]: 553501D782CD: reject: header 
Content-Type: application/vnd.ms-powerpoint;?  name="COLONIA DE FERIAS- 
SINTERC-PANORAMA.pps" from zeus.neobiz.com.br[200.174.139.27]; 
from=<address@hidden> to=<address@hidden> proto=ESMTP 
helo=<zeus.neobiz.com.br>: 5.7.1 TESTE-MAIL - SEU ANEXO pps FOI RECUSADO PELO 
NOSSO SERVIDOR, TENTE REENCAMINHA-LO ZIPADO OU EM CASO DE DUVIDAS ENTRE EM 
CONTATO COM O ADMINISTRADOR PELO E-MAIL address@hidden DEPARTAMENTO DE 
TECNOLOGIA TESTE SERVICOS.

 

****************************************************************************************************************************************

SAIDA:

May 18 13:13 FROM: <address@hidden>  TO: <address@hidden>  FILENAME: " 
?iso-8859-1?Q?Sociedade_de_informa E7 E3o.doc? "

May 19 17:10 FROM: <address@hidden> TO: <address@hidden> FILENAME: "porta 
caneta de bambi Luc Brad.wmv"

May 19 17:49 FROM: <address@hidden> TO: <address@hidden> FILENAME: "COLONIA DE 
FERIAS- SINTERC-PANORAMA.pps"

 

*****************************************************************************************************************************************************************************************************************************************************

SCRIPT:

#!/bin/sh
cat /var/log/maillog|grep ANEXO |sed 's/:/ /g'|sed 's/=/ /g' |sed 's/??/ /g' 
|while read line
do
nomes=(`echo $line`)
##########################################################
count_from=0
while [ $count_from != ${#nomes[@]} ]
do
if [ ${nomes[$count_from]} == from ]
then
let "count_from = count_from + 1"
from=`echo ${nomes[$count_from]}`
fi
let "count_from = count_from + 1"
done
###########################################################
count_to=0
while [ $count_to != ${#nomes[@]} ]
do
if [ ${nomes[$count_to]} == to ]
then
let "count_to = count_to + 1"
to=`echo ${nomes[$count_to]}`
fi
let "count_to = count_to + 1"
done
###########################################################
count_f=0
while [ $count_f != ${#nomes[@]} ]
do
if [ ${nomes[count_f]} == name ]
then
file=`echo $line |grep -o "name \".*\"" |sed 's/name//'`
else
if [ ${nomes[count_f]} == filename ]
then
file=`echo $line |grep -o "filename \".*\"" |sed 's/filename//'`
fi
fi
let "count_f = count_f + 1"
done
###########################################################

data=`echo $line |awk '{print $1, $2, $3":"$4}'`
echo $data FROM: $from TO: $to FILENAME: $file > report
done

 

Luciano Rangel



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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