grep -v "grep"
行ごとに入力を取り、grep
表示されない行のみを出力します。がなければ-v
、それが現れる行のみを出力grep
します。詳細man grep
をご覧ください。
限りgrep
ユーティリティ自体が懸念され、パターンそれの重要でないことをgrep
引数として渡されたが、その名前と同じです。しかし、grep -v grep
実際に現れるほとんどの場合、これは偶然ではありません。
grep -v grep
(またはgrep -v 'grep'
またはgrep -v "grep"
)が多いの右側に表示されるパイプの左側でps
コマンド。それはおそらくあなたがそれを見たところです。たとえば、名前、パス、またはコマンドライン引数がXfceに関連していることを示唆するプログラムの実行を探している場合があります。
ek@Io:~$ ps x | grep xfce
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
31901 pts/1 S+ 0:00 grep --color=auto xfce
私のgrep
コマンドは、出力に示されたが、それは私が探しているものではないのです。実行中のものを調べるための努力のためだけに実行されているプロセスではなく、実行中のものを調べたときに既に実行されていたプロセスに関する情報を探しています。
この気晴らしを削除する1つの一般的な方法は、別のパイプを追加することgrep -v grep
です:
ek@Io:~$ ps x | grep xfce | grep -v grep
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
grep
without -F
は、パターンを固定文字列ではなく正規表現として扱います。そのため、別のアプローチは、正確に一致するxfce
が異なる方法で記述された正規表現を記述することです。例えば:
ek@Io:~$ ps x | grep '[x]fce'
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
これ[x]
は、文字に正確に一致する文字クラスであるため機能しx
ます。
これらの一般的なメソッドの欠点の1つは、自分が実行しgrep
たgrep
コマンドではない場合でも、それらを含む行を除外することです。それらはgrep
コマンドでさえないかもしれません-名前、パス、またはコマンドライン引数にが含まれ ているコマンドだけgrep
です。したがって、Sergiy Kolodyazhnyyが指摘したように、多くの場合、これらの方法(またはの出力をパイピングすることを含む他のアプローチ)のどちらもps
本当に理想的ではなく、Nic Hartleyが述べたように、他の 方法はしばしば使用しますpgrep
。例えば:
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a
完全なコマンドラインを示しています。省略して、プロセスID番号のみを表示します。
-f
完全なコマンドラインで検索します。省略して名前のみを検索します。
man grep
コマンドのリファレンスマニュアルページを読んで、または特定のコマンドの詳細についてはするには(INC。のgrep)することができますinfo grep
....すなわち。あなたのシステムには、たいてい非常に便利なドキュメントがあります。