The title says it all. I've seen this idiom used alot instead of adding an additional grep -v grep
in some ps
pipeline. For example it could be used like this:
$ ps aux | grep '[f]irefox' | awk '{ print $8 }'
instead of
$ ps aux | grep 'firefox' | grep -v grep | awk '{ print $8 }'
It's super-convenient, but how does it work and why?
The pattern [f]irefox
will not match the literal string [f]irefox
. Instead it will match strings with exactly one char from the 1-character class [f]
, followed by irefox
.