디렉토리별로 프로세스의 GREP를 찾아 종료합니다.

디렉토리별로 프로세스의 GREP를 찾아 종료합니다.

grep/Applications/ 디렉터리에서 시작되는 프로세스를 대상으로 지정하려고 하는데 (종료하기 위해) 내 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

답변1

앵커 포인트 ^(캐럿)를 사용하여 선/필드의 시작을 나타내고 명령 순서를 변경합니다.

 ps -ef | grep -v grep | awk '{print $8}' | grep "^/Applications"

이 방법으로 grep은 마지막으로 실행되고 다음 줄만 반환합니다.시작그리고 /Applications.

이것매우 도움이 됩니다.

답변2

CPU 클럭 사이클 저장이 걱정된다면:

ps -ef | awk '$8~"^/Applications/"{print $8}'

답변3

패턴에 공백을 포함해 보세요.

...  grep -e ' /Applications/'  ...

또한 pkill이 기능(Linux의 오랫동안 표준 제품)이 이제 OS X Mountain Lion(10.8) 이상에 포함되었습니다. 바라보다http://osxdaily.com/2012/10/18/kill-process-wildcards-pkill-mac-os-x/

관련 정보