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

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

Re: [shell-script] Busca em ShellScript


From: Julio C. Neves
Subject: Re: [shell-script] Busca em ShellScript
Date: Tue, 5 Feb 2013 19:26:10 -0200

Acho bacana fazer essas comparações pq todos usam do modo mais lento e
desconhecem os outros 2, que são bem mais rápidos.

Experimente chegar numa sala com profissionais de TI, todos usuários Linus,
e pergunte como se cria um arquivo vazio em shell. Se houverem 100 pessoas
na sal (nenhuma dessa lista ;) ouviremos pelo menos 90 dizendo que é com
touch (umas 5 dizem que é com vi ;).

Aí eu mostro:
$ time for ((i=1; i<200; i++)); { touch lixo; }

real 0m0.898s
user 0m0.088s
sys 0m0.168s
$ time for ((i=1; i<200; i++)); { > lixo; }

real 0m0.044s
user 0m0.020s
sys 0m0.004s

É impressionante como os profissionais do Linux ignoram uma ferramenta
simples e poderosa como o shell!

Abcs,
Julio
@juliobash


Em 5 de fevereiro de 2013 19:02, Alfredo Casanova
<address@hidden>escreveu:

> Realmente, agora a diferença foi notável
> dei sempre um du -s antes do comando só pra checar se o volume estava muito
> maior
>
> $ du -s
> 1474240 .
> $ time find . -type f -exec grep -i "plink" {} > /dev/null \;
>
> real 4m6.693s
> user 2m26.301s
> sys 0m22.189s
>
> $ du -s
> 1474244 .
> $ time find . -type f | xargs grep -i "plink" > /dev/null
>
> real 2m30.238s
> user 2m17.161s
> sys 0m3.424s
>
> $ du -s
> 1474248 .
> $ time find . -type f -exec grep -i "plink" {} > /dev/null \+
>
> real 2m20.218s
> user 2m17.629s
> sys 0m2.400s
>
>
>
> 2013/2/5 Alfredo Casanova <address@hidden>
>
> > Bom, o número de linhas buscadas pode ter se alterado um pouco, mas de
> > fato não verifiquei isso. O número de arquivos era o mesmo em todos.
> > Amanhã faço o teste isolando o ambiente
> > Em 04/02/2013 17:36, "Julio C. Neves" <address@hidden> escreveu:
> >
> > **
> >>
> >>
> >> Deve ter ocorrido algo no momento que vc executou, pq a ordem crescente
> de
> >> tempo é:
> >> » exec ... {} \+ --- esse é o mais rápido;
> >> » xargs --- Um pouquinho mais lento (o tempo do fork + o tempo da carga
> do
> >> xargs);
> >> » exec ... {} \; --- o mais usado e mais lento.
> >>
> >> Abcs,
> >> Julio
> >> @juliobash
> >>
> >> Em 4 de fevereiro de 2013 17:00, Alfredo Casanova
> >> address@hidden>escreveu:
> >>
> >> > $ time find . -type f -exec grep -i "plink" {} > /dev/null \;
> >> >
> >> > real 4m19.462s
> >> > user 2m24.817s
> >> > sys 0m21.993s
> >> >
> >> > $ time find . -type f | xargs grep -i "string" > /dev/null
> >> >
> >> > real 3m32.933s
> >> > user 2m17.929s
> >> > sys 0m7.628s
> >> >
> >> > $ time find . -type f -exec grep -i "string" {} > /dev/null \+
> >> >
> >> > real 3m46.720s
> >> > user 2m18.237s
> >> > sys 0m7.880s
> >> >
> >> >
> >> >
> >> > acabou que o xargs se saiu melhor que o último
> >> >
> >> >
> >> > 2013/2/2 Julio C. Neves address@hidden>
> >> >
> >> > > **
> >> > >
> >> > >
> >> > > Armando,
> >> > > vou te pedir um favor: rode as linhas a seguir e publique o
> resultado
> >> > nessa
> >> > > lista para que a rapaziada veja que o modo mais tradicional e mais
> >> > usado, é
> >> > > o mais lento.
> >> > >
> >> > > Modo tradicional:
> >> > > $ time find . -type f -exec grep -i "string" {} > /dev/null \;
> >> > >
> >> > > Ligeiramente "envenenado":
> >> > > $ time find . -type f | xargs grep -i "string" > /dev/null
> >> > >
> >> > > Muito "envenenado":
> >> > > $ time find . -type f -exec grep -i "string" {} > /dev/null \+
> >> > >
> >> > > Mandei as saídas para /dev/null pq todas as saídas seriam iguais e
> >> > > igualmente corretas, mas o que nos interessa no caso é somente os
> >> tempos.
> >> > >
> >> > > - Dever de casa - ;)
> >> > > Se alguém além do Armando (que iniciou a thread) tiver um diretório
> >> com
> >> > > muitos arquivos de texto que possa fazer essa medição, peço que tb
> >> poste
> >> > os
> >> > > resultados na lista.
> >> > >
> >> > > Abcs,
> >> > > Julio
> >> > > @juliobash
> >> > >
> >> > > Em 1 de fevereiro de 2013 20:13, Rafael Henrique da Silva Correia <
> >> > > address@hidden> escreveu:
> >> > >
> >> > >
> >> > > > Acrescentando meus 0,02 centavos (li alternativas ótimas nas
> >> respostas
> >> > do
> >> > > > pessoal).... eu geralmente uso algo assim:
> >> > > >
> >> > > > $ find
> >> > > -type f -exec grep -i "string" \;
> >> > > >
> >> > > > Espero que vc consiga achar o find perfeito para seu problema ...
> ;)
> >> > > >
> >> > > > Até+
> >> > > >
> >> > > > Em 1 de fevereiro de 2013 15:53, Armando Barsotini Neto <
> >> > > > address@hidden> escreveu:
> >> > > >
> >> > > > > **
> >> > > > >
> >> > > > >
> >> > > > > Boa Tarde!
> >> > > > >
> >> > > > > Pessoal, estou utilzando o comando abaixo para pesquisar uma
> >> palavra
> >> > > > dentro
> >> > > > > de uma arquivo utilizando o "grep -i" (não sensitivo):
> >> > > > >
> >> > > > > find . | xargs grep -i "string"
> >> > > > >
> >> > > > > Porém, ele faz a varredura no servidor inteiro e isso demora
> >> muito...
> >> > > > teria
> >> > > > > como limitar essa busca em um determinado diretório e seus
> >> > > subdiretórios?
> >> > > > > Agradeço!
> >> > > > >
> >> > > > > Att,
> >> > > > >
> >> > > > > Armando Barsotini Neto
> >> > > > >
> >> > > > > Linux User # 503670
> >> > > > > Ubuntu User # 30175
> >> > > > >
> >> > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Rafael Henrique da Silva Correia
> >> > > > http://abraseucodigo.com.br
> >> > > >
> >> > > > Bacharel em Ciência da Computação
> >> > > > Administrador de Sistemas Linux
> >> > > > Certificado pela LPIC - 101 http://www.lpi.org/>
> >> > > > Certificado Novell (CLA)
> >> http://www.novell.com/training/certinfo/cla/>
> >> > > >
> >> > > >
> >> > > > [As partes desta mensagem que não continham texto foram removidas]
> >> > > >
> >> > > >
> >> > > >
> >> > > > ------------------------------------
> >> > > >
> >> > > > ----------------------------------------------------------
> >> > > > Esta lista não admite a abordagem de outras liguagens de
> >> programação,
> >> > > como
> >> > > > perl, C etc. Quem insistir em não seguir esta regra será moderado
> >> sem
> >> > > > prévio aviso.
> >> > > > ----------------------------------------------------------
> >> > > > Sair da lista: address@hidden
> >> > > > ----------------------------------------------------------
> >> > > > Esta lista é moderada de acordo com o previsto em
> >> > > > http://www.listas-discussao.cjb.net
> >> > > > ----------------------------------------------------------
> >> > > > Servidor Newsgroup da lista: news.gmane.org
> >> > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> > > >
> >> > > > Links do Yahoo! Grupos
> >> > > >
> >> > > >
> >> > > >
> >> > >
> >> > > [As partes desta mensagem que não continham texto foram removidas]
> >> > >
> >> > >
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > []'s
> >> > Alfredo Casanova
> >> > Linux User #228230
> >> > msn: address@hidden
> >> > tel: +55 61 9655 9619
> >> >
> >> >
> >> > [As partes desta mensagem que não continham texto foram removidas]
> >> >
> >> >
> >> >
> >> > ------------------------------------
> >> >
> >> > ----------------------------------------------------------
> >> > Esta lista não admite a abordagem de outras liguagens de programação,
> >> como
> >> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> >> > prévio aviso.
> >> > ----------------------------------------------------------
> >> > Sair da lista: address@hidden
> >> > ----------------------------------------------------------
> >> > Esta lista é moderada de acordo com o previsto em
> >> > http://www.listas-discussao.cjb.net
> >> > ----------------------------------------------------------
> >> > Servidor Newsgroup da lista: news.gmane.org
> >> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> >
> >> > Links do Yahoo! Grupos
> >> >
> >> >
> >> >
> >>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>
> >>
> >
>
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> msn: address@hidden
> tel: +55 61 9655 9619
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


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



reply via email to

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