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

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

Re: [shell-script] Mais uns detalhes do grep


From: Julio C. Neves
Subject: Re: [shell-script] Mais uns detalhes do grep
Date: Thu, 24 Sep 2009 21:12:39 -0300

Fala Jeiks,
será que fui eu mesmo que questionei? Pq eu teria dado uma outra solução. A
barra verticl (|) em uma expressão regular significa "ou", só que qdo vc usa
a opção -E do grep (que desta forma vira egrep) ou -r no sed, vc está
dizendo para interpretar todos os caracteres de expressão regular, como tal,
e não como caracteres para o shell. Assim sendo, eu faria este grep da
seguinte forma:

grep -E 'jeiks|mais' arquivo

Supondo que o arquivo fosse:
=arquivo=
teste
mais jeiks
mais teste
=final-arquivo=

Para procurar "mais jeiks" ou "mais teste" eu usaria parênteses para formar
um grupo e limitar o "ou", ficando assim:

grep -E 'mais (jeiks|teste)' arquivo

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000 (próxima turma de 1 a 4/10);
- No RJ ligue (21) 2561-0867;
- Turmas fechadas em outras cidades ligue (21) 8112-9988.


2009/9/24 Jeiks <address@hidden>

>
>
> Olá,
> lembram da postagem de um script a algum tempo, que utilizava o grep com
> "-e" várias vezes para procurar mais de uma expressão no arquivo? Como por
> exemplo:
> ----------------------
> =arquivo=
> teste
> jeiks
> mais teste
> =final-arquivo=
>
> # para obter linhas com "jeiks" ou linhas com "mais"
> grep -e jeiks -e mais arquivo
> ---------------------
>
> pois é... o Júlio havia comentado sobre os "-e" utilizados, e questionou
> sobre estar correto.
> Bom, encontrei como é que faz. Para o mesmo resultado anterior, seria:
>
> grep 'jeiks\|mais' arquivo
>
> ou sem aspas:
>
> grep jeiks\\\|mais arquivo
>
> ou seja, simplesmente colocando o pipe "|" com o caractere de escape "\"
>
> abs
>
> --
> Jacson R. C. Silva
>
> [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]