grep -v grepしないで済む方法

こちら経由でこのエントリで知りました。


プロセスをgrepするときに

ps -ef | grep hoge | grep -v grep

ってやるのはださいので、代わりに

ps -ef | grep [h]oge

ってやれば同値だよという。*1

[ と ] で囲まれた文字のリストは、そのリスト中に含まれるどれか 1 文字にマッチします。
http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

[h]ogeのマッチする文字列は「*hoge*」になるので、引数である「[h]oge」はアンマッチになります。


こういうのって実際に見てしまえば簡単ですが、自分で思いつくのはなかなか。

*1:はじめ、作業中によくやる自UNIXユーザ名のgrepで試して、grepのプロセスも含まれてしまって「あれ?」とかなってた・・これはさすがにgrep -v grepするしかなさそう