grep -v "grep"
줄 단위로 입력을 받고 grep
나타나지 않는 줄만 출력합니다 . 이 없다면 -v
, 그것은 만 출력 라인은있는 것 grep
않습니다 나타납니다. 자세한 내용 man grep
을 참조하십시오.
마찬가지로 지금까지 같은 grep
유틸리티가 자체 우려, 패턴 그것의 중요하지 않은 것을 grep
인자로 전달은 이름과 동일합니다. 그러나 grep -v grep
실제로 나타나는 대부분의 경우 우연의 일치가 아닙니다.
grep -v grep
(또는 grep -v 'grep'
또는 grep -v "grep"
)은 종종 왼쪽이 명령 인 파이프 의 오른쪽에 나타납니다 ps
. 그것은 당신이 그것을 본 곳일 것입니다. 예를 들어, 이름, 경로 또는 명령 줄 인수가 Xfce와 관련이 있다고 제안하는 프로그램을 실행하려고 할 수 있습니다.
ek@Io:~$ ps x | grep xfce
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
31901 pts/1 S+ 0:00 grep --color=auto xfce
내 grep
명령이 출력에 표시되었지만 내가 찾고있는 것이 아닙니다. 실행중인 것을 조사 하려는 노력 때문에 실행중인 프로세스가 아니라 실행중인 것을 조사 할 때 이미 실행중인 프로세스에 대한 정보를 찾고 있습니다.
이 방해 요소를 제거하는 일반적인 방법 중 하나는 다음에 다른 파이프를 추가 하는 것입니다 grep -v grep
.
ek@Io:~$ ps x | grep xfce | grep -v grep
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
grep
without -F
는 패턴을 고정 문자열이 아닌 정규식 으로 취급 합니다 . 따라서 또 다른 방법은 정확히 일치 xfce
하지만 다르게 작성된 정규식을 작성하는 것입니다. 예를 들면 다음과 같습니다.
ek@Io:~$ ps x | grep '[x]fce'
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
문자 와 정확히 일치 [x]
하는 문자 클래스 이기 때문에 작동합니다 x
.
이러한 인기있는 방법 중 하나의 단점은 방금 실행 grep
한 grep
명령 이 아닌 경우에도 포함 된 행을 필터링한다는 것입니다. 그들은 심지어하지 않을 수 있습니다 grep
누구의 이름, 경로, 또는 명령 줄 인수 단지 명령 - 명령을 포함 grep
. 그래서,로 세르지 Kolodyazhnyy는 지적 밖으로 가지고 자주도 그 방법 중, (도의 출력을 파이프와 관련된 다른 접근 방식 ps
)으로, 정말 적합하며 닉 하틀리 언급 , 다른 방법이 자주 사용 pgrep
. 예를 들면 다음과 같습니다.
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a
전체 명령 행을 보여줍니다 . 프로세스 ID 번호 만 표시하려면 생략하십시오.
-f
전체 명령 줄에서 검색 합니다. 이름 만 검색하려면 생략하십시오.
man grep
명령에 대한 참조 매뉴얼 페이지를 읽거나 수행 할 수있는 특정 명령 (grep 포함)에 대한 자세한 내용을 볼 수 있습니다info grep
. 시스템에는 종종 매우 유용한 문서가 있습니다.