Como posso parar o grep retornar [duplicado]

1
# ps -ef | grep gre
root     15067 63614  0 11:03 pts/0    00:00:00 grep --color=auto gre

Outro exemplo

# ps -ef | grep sshd
root      1186     1  0 Jul26 ?        00:00:00 /usr/sbin/sshd -D
root     15439 63614  0 11:05 pts/0    00:00:00 grep --color=auto sshd

Como posso parar o comando grep sendo encontrado sozinho e não retornado como um campo?

    
por devnull 27.07.2015 / 12:06

8 respostas

2

Altere o padrão para que seja uma expressão regular que não corresponda ao texto literal.

    ps -ef | grep [s]shd
    
por 27.07.2015 / 12:17
6

A melhor maneira é usar pgrep para essa tarefa. Parece estar disponível na maioria dos sistemas nos dias de hoje.

    
por 27.07.2015 / 12:20
3

Existem várias maneiras, mais ou menos hacky e desajeitadas. Meu favorito é inserir uma barra invertida dupla antes de uma letra na minha string de pesquisa:

ps -ef | grep ss\hd

O \\ é interpretado como \ pelo shell e \ h é interpretado como equivalente a 'h' pelo grep. Por isso, está efetivamente procurando por 'sshd' como antes. No entanto, seu próprio comando string não contém mais 'sshd', ele contém 'ss \ hd', então ele não corresponde a si mesmo.

    
por 27.07.2015 / 12:13
3

Quando disponível, use apenas pgrep que foi criado para resolver esse problema, por exemplo:

ps -f $(pgrep sshd)

Este método é mais limpo do que as soluções alternativas geralmente sugeridas.

    
por 27.07.2015 / 12:19
2

O que você precisa é de ps -e | grep sshd

( ps -ef está listando processos e seus argumentos, ps -e lista apenas os processos).

    
por 27.07.2015 / 12:36
2
ps -fCsshd

Isso é provavelmente tudo que você precisa em um sistema Linux.

    
por 27.07.2015 / 12:40
-1

Você pode usar o próprio grep para evitar esse resultado:

ps -ef|grep your_search_chain|grep -v grep

    
por 27.07.2015 / 12:15
-1

Da mesma forma que o Andrew, você pode usar []:

ps -ef |grep [s]shd

Ele será considerado como um regex BRE simples e não corresponderá a si próprio. Considero menos intrusivo do que as barras invertidas, pelas quais você terá que se preocupar com "qual intérprete as levará em consideração primeiro".

    
por 27.07.2015 / 12:19

Tags