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

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

Re: [shell-script] Re: comando sed


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Re: comando sed
Date: Fri, 24 Aug 2007 10:08:21 -0300

tem varias formas. a mais comum é fazer um laço for

$ for i in `seq 10` ; do grep -H "palavra" dados_bloco$i ; done

é claro, um for pode ser paralelizado em um ou mais pipes usando xargs

$ seq 10 | xargs -i grep -H 'palavra' dados_bloco{}

porém, dessa forma vou executar o grep 10 vezes.

$ seq 10 | xargs -i echo dados_bloco{} | xargs grep 'palavra'

agora eu uso um grep só, pode ser imperceptivelmente mais rapido.

perceba que antes, como eu executava 10 grep's eu tinha q informar a
opção -H para que a string encotrada fosse precedida do nome do
arquivo.

se eu quisesse descobrir apenas o bloco ou arquivo que está a palavra,
eu poderia usar a opção -l  -- o grep tem muitas opções de uma olhada
no man, da pra fazer chover!

agora, eu acho esta forma mais ... elegante

$ echo dados_bloco\{$(seq -s, 10)\}
dados_bloco{1,2,3,4,5,6,7,8,9,10}   # sem problemas até aqui

$ eval echo dados_bloco\{$(seq -s, 10)\} # humm???
dados_bloco1 dados_bloco2 dados_bloco3 dados_bloco4 ... dados_bloco10

o eval realiza a expansão {A,B,C}, agora que la dentro tem uma
sequencia numérica que interessa.

se funciona com o echo do jeito que eu quero, mudamos para o grep

$ eval grep "palavra" dados_bloco\{$(seq -s, 10)\}

enfim, tem varias formas, basta escolher a mais adequada ao seu problema ;-)

On 8/24/07, voyeg3r <address@hidden> wrote:
>
> Use o grep com o parâmetro "n", para mostrar o número da linha
>  em que o padrão foi encontrado
>
>  grep -n "padrao buscado" /local/bloco[0-9][0-9]
>
>  --- Em address@hidden, "dgotek" <dgotek@...> escreveu
>  > > outra dúvida que eu tenho dp dos arquivos gerados dados_bloco_01
>  > até dados_bloco_x, eu queria procurar uma determinada palavra, sem
>  > ter que digitar nome de arquivo por arquivo.
>  >
>  > grep <localizar palavra> <do arquivo dados_bloco01 até o
>  > dados_bloco_x;

-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


reply via email to

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