grep에서 자신의 검색 프로세스를 제외하고 싶을 때

1548 단어 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

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 라고 하는 조건에는 걸리지 않기 때문에 표시되지 않습니다, 라고 하는 이야기.
우아하네요.

좋은 웹페이지 즐겨찾기