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

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

Re: [shell-script] Comando grep


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] Comando grep
Date: Fri, 24 Jun 2005 21:28:51 -0300
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)


O comando

$ grep [bras]

vai fazer busca por qualquer um dos quatro caracteres, não um conjunto definido, "bras" como você explicou.

Vai casar com "b", "r", "a", e "s" tendo ou não um dos outros caracteres.

Mais infos sobre isso em http://guia-er.sourceforge.net/guia-er-11.html

Para procurar por "bras" mesmo, e, mais especificamente, "tudo que começa com bras", você usaria:

$ echo -e "embrasileirado\nbrasil\npau-brasil" | grep "\bbras"
brasil
pau-brasil

Ou seja, qualquer linha que tenha uma palavra que comece com "bras", pois o grep vai respeitar o "\b", que pode ser traduzido como "borda da palavra".

Voltando ao tópico, o comando:

$ ps -ef | grep mail
eliphas  31451     1  0 Jun23 ?        00:00:00 fetchmail
eliphas  11762 11727  0 16:49 pts/1    00:00:00 grep mail

Vai me retornar, às vezes, o próprio grep. Porque a linha do processo grep também tem o que você quer. Então, podemos fazer duas coisas:

$ ps -ef | grep -v grep | grep mail

Que, vai tirar as ocorrências do grep, se houverem; ou podemos usar o truque das próprias expressões regulares:

$ ps -ef | grep [m]ail

Que vai procurar pela mesma coisa que a anterior, "mail", pois dentro da lista dos colchetes só existe um caractere. Porém, isso vai enganar o grep, fazendo com que ele não "ache" ele mesmo, pois a linha de comando que o "ps -ef" vai mostrar, vai conter os colchetes. Essa é a explicação longa ':)

--
Eliphas

//dam escreveu:
1) ps -ef | grep [bras]
Resultante: tudo que começa com bras (brasil, brasileiro, brasa)

2) ... que o grep acima apareça no retorno
ps -ef | grep [bras] &>/dev/null

Resultante: a resposta não é vista em Terminal.

--- Em address@hidden, Rafael Quirino
<quirinobytes@y...> escreveu

ps -ef | grep [a]lguma coisa.

Nao sei oq os colchetes fazem, só sei q funciona.
Parece q é regex.

weberlf escreveu:

Gostaria de saber como posso executar o comando ps -ef | grep 'alguma coisa' sem que o grep acima apareça no retorno


reply via email to

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