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: Sat, 2 Feb 2013 14:20:30 -0200

A pergunta não é boba não. Veja o -exec interpreta final {} \; da seguinte
maneira:
1- cada arquivo que case com o find será colocado no lugar do par de chaves;
2- o ponto-e-vírgula é significativo para o shell e a contrabarra é para
não deixar o shell interpretá-lo;
3- O ponto-e-vírgula é idêntico ao <ENTER> e, porisso, serve para executar
mais de 1 cmd na mesma linha.

Supondo que seu find mandou para o -exec 3 arqs: arq1, arq2 e arq3, a linha
montada e mandada para execução seria:

grep -i "string" arq1 ; grep -i "string" arq2 ; grep -i "string" arq3 ;

Isto é, estará executando 3 vezes o grep.

Caso o terminador fosse {} \+, a linha mandada para execução, seria:

grep -i "string" arq1 arq2 arq3

Isto é, somente um grep e muito menos tempo de execução.

Abcs,
Julio
@juliobash


Em 2 de fevereiro de 2013 12:15, Osvaldo Filho <address@hidden
> escreveu:

> **
>
>
> A pergunta pode ser boba, mas qual a função do uso da "\+" no final do
> comando?
>
> Enviado via iPad
>
> Em 02/02/2013, às 09:28, "Julio C. Neves" address@hidden> escreveu:
>
> > 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]
> >
> >
>
> [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]