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: Tue, 19 May 2009 10:43:19 -0300

Pessoal muito obrigado pela ajuda e segue o script para analise de melhorias ou 
mesmo como referencia para alguma coisa....

 

Não trouxe a entrada do arquivo maillog e a saida do meu script mais prometo 
passar isso amanha no e-mail....

 

Obrigado mais uma vez a todos 

 

 

#!/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

 

 

 






E assim?

valtoir@kraftwerk:~$ grep -o "name=\".*\"" t.txt | sed 's/name=//'
"TESTE DE ARQUIVO.txt"
"teste.txt"

Valtoir

2009/5/18 Luciano Estevam Rangel <address@hidden 
<mailto:lrangel%40scopus.com.br> >

>
>
>
>
> Pessoal eu tinha tentado essa alternativa também porem existe outros tipos
> de informação com " no arquivo...Falaha minha de não especifuicar o arquivo
> de entrada completo...sem falar que o argumento anterior tambem varia de
> name e filename
>
> Exemplo:
>
>
> May 09 13:23 DENY user teste filename="TESTE DE ARQUIVO.txt"
> May 09 13:45 ACCEPT user teste cod 1234 filename="teste.txt"
> May 09 13:50 ACCEPT "teste.rs" user 1234 cod 1234 name="teste.txt"
>
> May 09 13:55 DENY user "test.com" cof "345" cod 1222 filename="rede.pps"
>
> Obrigado ja pela ajuda de todos
>
> complementando:
>
> grep -o "user [a-z]* " t.txt | sed 's/user //'
>
> 2009/5/18 Valtoir Jardim <address@hidden <mailto:valtoirjardim%40gmail.com> 
> <valtoirjardim%40gmail.com><mailto:
> valtoirjardim%40gmail.com <valtoirjardim%2540gmail.com>> >
>
> > Algumas idéias:
> >
> > valtoir@kraftwerk:~$ grep -o "user [a-z]* " t.txt
> > user teste
> > user teste
> >
> >
> > valtoir@kraftwerk:~$ grep -o \".*\" arquivo_x.txt
> > "TESTE DE ARQUIVO.txt"
> > "teste.txt"
> >
> > T+
> >
> > Valtoir
> >
> > 2009/5/18 Luciano Estevam Rangel <address@hidden 
> > <mailto:lrangel%40scopus.com.br> <lrangel%40scopus.com.br><mailto:
> lrangel%40scopus.com.br <lrangel%2540scopus.com.br>> >
> >
> >>
> >>
> >> Boa tarde,
> >>
> >> Estou desenvolvendo um script e existe um problema no qual eu nao
> consigo
> >> achar uma resolução.
> >>
> >> Temos o arquivo x com o seguinte conteúdo
> >> valtoir@kraftwerk:~$ grep -o \".*\" t.txt
> >> "TESTE DE ARQUIVO.txt"
> >> "teste.txt"
> >>
> >>
> >> May 09 13:23 DENY user teste filename="TESTE DE ARQUIVO.txt"
> >>
> >> May 09 13:45 ACCEPT user teste cod 1234 filename="teste.txt"
> >>
> >> Meu problema e o seguinte
> >>
> >> Preciso crier um arquivo cujo o conteudo seja apenas o nome do user e o
> >> arquivo, porem eles então em posição diferentes em cada linha, e o outro
> >> problema e que o arquivo contem espaço então quando faço um awk ele so
> me
> >> retorna no exemplo do nome do arquivo "TESTE e não o nome completo,
> exemplo
> >> "TESTE DE ARQUIVO.txt" já quebrei a cabeça aqui com while e tudo mais
> >> ...Alguem poderia me dar uma luz de como pegar somente estes dois
> campos?
> >>
> >> Obrigado
> >>
> >> Luciano
> >>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>
> >>
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

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





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



reply via email to

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