Como posso evitar que 'grep' apareça nos resultados do ps?

Como posso evitar que 'grep' apareça nos resultados do ps?

Quando procuro algum processo que não existe, por exemplo

$ ps aux | grep fnord                          
wayne    15745  0.0  0.0  13580   928 pts/6    S+   03:58   0:00 grep fnord

Obviamente não me importo com o grep - isso faz tanto sentido quanto procurar o psprocesso!

Como posso evitar que o grep apareça nos resultados?

Responder1

Acontece que há uma solução encontrada emchaveiro.

$ ps aux | grep "[f]nord"

Colocando colchetes ao redor da letra e aspas ao redor da string, você procura pela regex, que diz: "Encontre o caractere 'f' seguido de 'nord'."

Mas como você colocou os colchetes no padrão, 'f' agora é seguido por ']', então grepnão aparecerá na lista de resultados. Legal!

Responder2

Outra opção que uso (especialmente apenas para verificar se um processo está em execução) é o pgrep comando. Isso procurará um processo correspondente, mas não listará uma linha grep para a pesquisa. Gosto porque é uma forma rápida de busca, sem regex ou escape de nada.

pgrep fnord

Além disso, para imprimir o ID do processo e o nome do processo que está sendo correspondido, use (obrigadofenômeno)

pgrep -l fnord

Responder3

A solução ideal é a apresentada pela BriGuy

pgrep fnord 

Mas se você não quiser fazer isso, basta excluir todas as linhas que correspondam agrepcom:

ps aux | grep -v grep | grep "fnord"

Responder4

Em zsh, grep fnord =(ps aux).

A ideia é, primeiro executar ps aux, colocar o resultado em um arquivo e depois usar grepnesse arquivo. Só que não temos um arquivo, pois usamos a "substituição de processo" do zsh.

Para ilustrar, tente

ps aux > ps.txt
grep fnord ps.txt
rm ps.txt

O resultado deve ser o mesmo.

Comentário geralem algumas das outras respostas. Alguns são muito complicados e/ou longos para digitar. Não é apenas uma questão de estar certo, mas também de ser utilizável. Mas isso não significa que algumas dessas soluções sejam ruins; apenas, eles devem ser agrupados em uma mini-UI para torná-los utilizáveis.

informação relacionada