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

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

[shell-script] grep


From: Julio Cezar Neves - DISB.O
Subject: [shell-script] grep
Date: Thu, 17 Aug 2000 16:53:11 -0300

> @ 16/8, Julio Cezar Neves - DISB.O:
> > Quando dei a solução com egrep, estava apenas "universalizando" a
> resposta.
> > Inúmeros sabores Unix, dentre eles o SVR4 e SCO só reconhecem a síntaxe
> do
> > grep proposta com o uso da opção -e, porém esta opção invialiliza
> outras.
> 
> svr4 E sco? até onde eu sabia svr4 é uma versão do sco e não
> outro produto...
> 
> grep -e é o grep usando a mesma gama de expressões regulares do
> egrep, aí tanto faz usar um quanto o outro.
> 
> a solução que propus é com o grep normal, sem o -e, a única
> diferença é que precisa escapar com a \ a alternância |, nada mais.
>  
>     grep 'isso\|aquilo\|aquele outro'
> 
> ou seja, 'isso' ou 'aquilo' ou 'aquele outro'
> com grep -e você pode fazer sem escapar:
> 
>     grep -e 'isso|aquilo|aquele outro'
>  
> mas dá na mesma, só que o primeiro não depende da existência da 
> opção -e.
> 
        Veja só este teste realizado sob o SVR4:

        Prompt> grep -l 'echo\|tput' *.sh
        Prompt> egrep -l '(echo|tput)' *.sh
        deleval.sh
        dicas.sh
        langoni.sh
        listaord.sh
        ...
        ...
        transpro.sh 


> > Quanto aos parênteses, realmente são opcionais, mas costumo usá-los
> somente
> > para uniformizar e facilitar a manutenção dos scripts.
> 
> uniformizar? bem, já que estamos falando de versões de grep,
> algumas versões primeiro tiveram suporte ao \| e só depois (ou
> não até hoje) tiveram suporte a quantificação dos parênteses
> ()*, então seu uso é desnecessário, visto que o único motivo
> para seu uso, seria quantificá-lo...
> 
        Uniformizar a elaboração de scripts dentro da empresa, desta forma
facilitando a manutenção.

> > > De:               # aurelio marinho jargas
> [SMTP:address@hidden]
> > > @ 16/8, Julio Cezar Neves - DISB.O:
> > > > Repare no comando abaixo que estou usando o comando egrep (extended
> > > grep) e
> > > > não o grep.
> > > 
> > > o anderson pediu solução com o grep e não com o egrep.
> > > mesmo com o egrep os parênteses são desnecessários (nesse caso)
> > > 
> > > > prompt> egrep 'str1|str2|...|strn)' arquivo
> > > 
> > > > > De:           # aurelio marinho jargas
> > > [SMTP:address@hidden]
> > > > > @ 16/8, Anderson Montenegro dos Santos:
> > > > > >  como faco para o grep procurar num arquivo as linhas que tenham
> uma
> > > > > palavra
> > > > > > ou outra
> > > > > 
> > > > > grep 'palavra1\|outras palavras com espaço em branco\|palavra3'
> > > arquivo
> > > > > 
> > > > > (não precisa dos parênteses pois a concatenação tem precedência
> > > > > sobre a alternância '|' - que deve ser escapada no grep)
> 
> 
> -- 
> s·:(·>(·×^a]×http://www.verde666.org×^[:wq
> 
> 
> 
> 
> Inscrição:     address@hidden
> 
> Sair da lista: address@hidden
> 
> Banco Dados:   http://www.egroups.com/group/shell-script


reply via email to

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