grep - por que os colchetes no padrão grep removem o processo grep dos resultados ps?

12

Por que os colchetes em um padrão grep removem o processo do grep de ps results?

$ ps -ef | grep XXXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep [X]XXX

[...] XXXX
    
por Gilles 15.09.2010 / 12:46

2 respostas

20

Quando você executa ps -ef | grep string , o grep é exibido na saída porque string corresponde a [...] grep string .

Mas, quando você executa ps -ef | grep [s]tring , a linha não é exibida, pois o grep traduz [s]tring para string , enquanto o ps gera [...] grep [s]tring e não corresponde a string

    
por 15.09.2010 / 13:14
2

Porque os parênteses precisam ser escapados, por bash uma vez e por grep novamente:

$ ps -ef | grep \[X\]XXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep "\[X\]XXX"

[...] XXXX
[...] grep XXXX
    
por 15.09.2010 / 12:56