/ Applications /ディレクトリから発生したプロセスをgrep
しようとしていますが(それらを強制終了するため)、grep
コマンドはいくつかの誤ったプロセスもキャッチし続けます。私はここで何が間違っているのですか?
$ ps -ef | grep -e '/Applications/' | grep -v grep | awk '{print $8}'
/Library/Application I DON'T WANT THIS
/Library/Application I DON'T WANT THIS
/Applications/Firefox.app/Contents/MacOS/firefox
/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
/Applications/Notes.app/Contents/MacOS/Notes
パターンに空白を含めてみてください。
... grep -e ' /Applications/' ...
また、pkill
(Linuxの長い標準製品)がOS X Mountain Lion(10.8)以降に含まれるようになりました。 http://osxdaily.com/2012/10/18/kill-process-wildcards-pkill-mac-os-x/ を参照してください
アンカー^
(キャレット記号)を使用して、行/フィールドの開始を示し、コマンドの順序を変更します。
ps -ef | grep -v grep | awk '{print $8}' | grep "^/Applications"
このように、grepは最後に実行され、startで/Applications
の行のみを返します。
This も役立ちます。
CPUティックの節約に悩んでいる場合:
ps -ef | awk '$8~"^/Applications/"{print $8}'