たとえば、存在しないプロセスを検索する場合
$ ps aux | grep fnord
wayne 15745 0.0 0.0 13580 928 pts/6 S+ 03:58 0:00 grep fnord
明らかに私はgrepに興味がありません。これはプロセスを検索するのと同じ意味がありますps
!
grepが結果に表示されるのを防ぐ方法は?
答え1
解決策が見つかったことがわかりましたキーホルダー。
$ ps aux | grep "[f]nord"
文字の周りに角かっこを入れて文字列の周りに引用符を入れると、正規表現を検索できます。つまり、「f」の後に「nord」文字を探してください。」
しかし、「f」パターンに括弧を入れたので、今後に「]」が付いているので、grep
結果リストには表示されません。ニト!
答え2
私が使用するもう1つのオプションは、(特にプロセスが実行されていることを確認するために)コマンドですpgrep
。一致するプロセスを検索しますが、検索に使用された grep 行はリストされません。形を変えたり外したりすることなく検索できる素早い方法なので気に入っています。
pgrep fnord
また、一致するプロセスIDとプロセス名を印刷するには(ありがとうございます)。ピマー)
pgrep -l fnord
答え3
BriGuyが提案したソリューションは理想的なソリューションです
pgrep fnord
しかし、そうしたくない場合は、以下に関連するすべてを除外できます。grepそして:
ps aux | grep -v grep | grep "fnord"
答え4
zshではgrep fnord =(ps aux)
。
アイデアは最初に実行し、ps aux
結果をファイルに入れてからgrep
そのファイルで使用することです。ただzshの「プロセスの置き換え」を使用するので、ファイルはありません。
これを説明するには、以下を試してください。
ps aux > ps.txt
grep fnord ps.txt
rm ps.txt
結果は同じでなければなりません。
一般的な回答他の答えについて。一部は複雑すぎたり長すぎたりすることはできません。これは正しい質問であるだけでなく、利用可能でなければなりません。しかし、これはこれらの解決策のいくつかが悪いという意味ではありません。ただし、使用するにはミニUIにカプセル化する必要があります。