[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]
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Melhorar script (achar o conteudo em meio a vários arquivos),
marlon_mca <=