質問: とあるデーモンがどれだけ起動しているか調べる際、`ps -ax | grep 〈デーモン名〉` を使うと `grep` 自身も検索にひっかかってしまいます。 これが地味にややこしいです。自分自身は除外するように検索するにはどうすれば良いでしょうか? ``` $ ps -ax | grep emacs 154 ? Ss 0:00 emacs --daemon 5502 tty1 R 0:00 grep --color=auto emacs # ← この行を出力したくない ``` Info: この投稿についたコメントから影響を受け、自分の知らないやり方がありそうだと思って投稿した質問です。
回答: 別の方法1 昔からある商用 UNIX には入っていませんが [linux](/questions/tagged/linux "'linux' のタグが付いた質問を表示") ならたいてい `pgrep` というツールが入っています。 ``` $ pgrep emacs ``` `pgrep` の検索は、動作中の自分自身にはマッチしない仕様なので楽です。 別の方法2 `grep` が `grep` にヒットするから気に入らないのであればもう一段階 `grep` を使って除外することができます。やや冗長ですね。 ``` $ ps -aux | grep emacs | grep -v grep ``` `grep` のオプション `-v` はマッチしない場合を抽出です。 # オイラはこれで `grep -v` を覚えました。