Command line ps aux | grep';[p] 模式';排除grep本身?

Command line ps aux | grep';[p] 模式';排除grep本身?,command-line,grep,ps,Command Line,Grep,Ps,标题说明了一切。我已经看到这个习惯用法被大量使用,而不是在一些ps管道中添加额外的grep-vgrep。例如,它可以这样使用: $ ps aux | grep '[f]irefox' | awk '{ print $8 }' 而不是 $ ps aux | grep 'firefox' | grep -v grep | awk '{ print $8 }' 它非常方便,但是它是如何工作的,为什么呢?模式[f]irefox将与文本字符串[f]irefox不匹配。相反,它会将字符串与1字符类[f]

标题说明了一切。我已经看到这个习惯用法被大量使用,而不是在一些
ps
管道中添加额外的
grep-vgrep
。例如,它可以这样使用:

$ ps aux | grep '[f]irefox' | awk '{ print $8 }'
而不是

$ ps aux | grep 'firefox' | grep -v grep | awk '{ print $8 }'

它非常方便,但是它是如何工作的,为什么呢?

模式
[f]irefox
将与文本字符串
[f]irefox
不匹配。相反,它会将字符串与1字符类
[f]
中的恰好一个字符进行匹配,然后是
irefox

您不需要
grep
,只需使用
ps aux | awk'/[f]irefox/{print$8}'
即可