2013-12-11 4 views
3

В названии говорится все. Я видел эту идиому, используемую alot вместо добавления дополнительного grep -v grep в конвейере ps. Например, он может быть использован, как это:Как работает ps aux | grep '[p] attern' исключает сам grep?

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

вместо

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

Это супер-удобно, но как это работает и почему?

+0

Вам не нужен 'grep', просто используйте' ps aux | awk '/ [f] irefox/{print $ 8}' ' – Jotne

+0

Возможный дубликат [Более элегантный« ps aux | grep -v grep »] (http://stackoverflow.com/questions/9375711/more-elegant-ps- AUX-Grep-V-Grep) – Jmills

ответ

4

Образец [f]irefox не будет соответствовать буквальной строке [f]irefox. Вместо этого он будет соответствовать строкам с ровно одним символом из 1-символьного класса [f], а затем irefox.

Смежные вопросы