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/