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

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

Re: [shell-script] Melhorar script (achar o conteudo em meio a vários ar


From: Julio C. Neves
Subject: Re: [shell-script] Melhorar script (achar o conteudo em meio a vários arquivos)
Date: Wed, 31 Dec 2008 13:57:13 -0200

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 <address@hidden>

>
> 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]