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

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

Re: Melhorar script (achar o conteudo em meio a vários arquivos)


From: marlon_mca
Subject: Re: Melhorar script (achar o conteudo em meio a vários arquivos)
Date: Fri, 02 Jan 2009 12:51:19 -0000
User-agent: eGroups-EW/0.82

    Bom dia Julio

    Mais uma vez vc mostra que é um guro em shellscript, você preveu o
erro que eu comecei a ter quando comecei a testar e mudar o script com
as dicas aqui da lista.
    Agora to vendo o seu comando é muito mais rápido e eficiente.

Obrigado.

Meu script ficou assim:
#####################################################
for i in `cat $1`; do
        echo " "
        echo "Procurando Chassi ==>   "$i" <== "
        grep -i "$i" *"$2"*
        done
#####################################################

Continuo usando o for apenas pra ter o seguinte resultado:

Procurando Chassi ==>   079545 <==
2099-01-01b:FM19BFZK53AX9B079347489BFZK53A09B078238489BFZK53A19B076630489BFZK53A
39B079545489BFZK53A49B07968348

Que é pra saber qual chassi foi achado em qual arquivo.



--- Em address@hidden, "Julio C. Neves"
<julio.neves@...> escreveu
>
> FAla Marlon,
> se entendi o que vc quer, seu problema está com um erro perigoso. Vc
passou
> 2 parâmetros: o primeiro arquivo_chassi/chassi.txt e o segundo
30-12*. É ai
> que mora o perigo... ;) Quem vai expandir este asterisco é o shell e
seu $1
> será somente o 1o. arquivo expandido. Ou vc proteje o asterisco como
> parâmetro ( arquivo_chassi/chassi.txt 30-12\*) ou vc o expande dentro do
> script. Acho a segunda muito melhor.
> 
> Se eu entendi o seu problema, resolveria com um one-liner assim:
> 
> grep -f "$1" *"$2"*
> 
> Experimente colocar o cmd time antes do nome do script, assim:
> 
> time ./script_do_marlon
> time ./script_do_julio
> 
> Tenho certeza que o meu será mais rápido e listará mais coisas que o
seu,
> pois, como disse, acho que o seu só está pesquisando o 1o. arquivo que o
> shell expandiu.
> -- 
> Abração e Feliz ano novo,
> Julio
> *Cursos de Shell e Zenity nos finais de semana:
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988*
> 
> 2008/12/30 marlon_mca <marlon_mca@...>
> 
> >
> > Boa tarde senhores do Shell
> >
> > Vim mostrar um script que fiz para localizar um conteúdo especifico
> > em um mar de arquivos e gostaria de ver outras formas de se fazer
> > isso, se vocês estiverem a fim de ajudar claro.
> >
> > Meu ambiente:
> > Tenho um diretório que hoje esta com 1340 arquivos de todos os tipos
> > e dentre eles preciso achar alguns específicos e dentro pesquisar o
> > conteúdo, os arquivos que quero são criados na seguinte nomenclatura
> > filial+data+letra (2099-30-12a, 1245-30-12a ....), então num dia
> > normal tenho de 4 a 8 arquivos dessa forma então como preciso
> > pesquisar várias coisas dentro deles criei este script:
> >
> > ###########################################################
> > for i in `cat $1`; do
> > echo " "
> > echo "Procurando Chassi ==> "$i" <== "
> > find . -name \*"$2" | xargs -i grep "$i" {} echo {} 2>
> > arquivo_chassi/erro
> > done
> >
> > ###############################################################
> >
> > e executo assim:
> > ./procura_carro arquivo_chassi/chassi.txt 30-12*
> >
> > onde a variável $1 recebe o conteúdo do arquivo chassi.txt e a
> > variável $2 pedaço do nome dos arquivos que quero pesquisar o
conteúdo.
> >
> > Desde já agradeço a atenção de todos.
> > Marlon V Reck.
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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