grep で自身の検索プロセスを除外したい時
Overview
$ ps aux | grep zsh
qiita 10548 0.6 0.0 4268056 808 s000 S+ 11:43AM 0:00.00 grep zsh
qiita 1294 0.4 0.0 4334752 2896 s000 S 10:04AM 0:00.22 -zsh
$ ps aux | grep zsh
qiita 10548 0.6 0.0 4268056 808 s000 S+ 11:43AM 0:00.00 grep zsh
qiita 1294 0.4 0.0 4334752 2896 s000 S 10:04AM 0:00.22 -zsh
grep で grep 自身のプロセスは無視して表示させたい時ありますよね。
そんな時に使える方法を2つ紹介します
grep -v
を使う
多分よく知られている方法。
$ ps aux | grep zsh | grep -v 'grep zsh'
qiita 1294 0.0 0.0 4334752 2896 s000 S 10:04AM 0:00.23 -zsh
もう一回パイプして grep -v 'grep *'
で自身のプロセスを除外できます。
[](brackets)
を使う
grep -v
でもいいんですが、もう一個パイプを挟んでいる関係で余計にプロセスをフォークしていることが気になったりしませんか?そんな時は [](brackets)
を使いましょう。
$ ps aux | grep [z]sh
qiita 1294 0.3 0.0 4334752 2896 s000 S 10:04AM 0:00.24 -zsh
仕組みとしては z 1文字 + sh
という条件で検索が実行されるが、grep に渡されている文字列は [z]sh
なので z 1文字 + sh
という条件には引っかからないので表示されませんよ、という話。
エレガントですね。
Author And Source
この問題について(grep で自身の検索プロセスを除外したい時), 我々は、より多くの情報をここで見つけました https://qiita.com/att55/items/045a479dbe06a5299805著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .