grep -v“grep”은 무슨 뜻입니까?


17

나는 grep -v "grep"그것이 무엇을 의미하는지 궁금 했습니다.


8
man grep명령에 대한 참조 매뉴얼 페이지를 읽거나 수행 할 수있는 특정 명령 (grep 포함)에 대한 자세한 내용을 볼 수 있습니다 info grep. 시스템에는 종종 매우 유용한 문서가 있습니다.
guiverc

12
grep -v "grep"프로세스를 나열하는 동안 grep 자체를 필터링하는 데 자주 사용되며 일반적으로 3 개의 파이프 라인이 필요하지만 pgrep"배관"을 훨씬 적게 허용하는 방법이 더 좋습니다 .
7

13
그렇습니다. 내 루트킷을 호출하고 grep있습니다.
여호수아

일반적으로 개발중인 대상, 응답이 중지 된 곳, 찾은 ID를 찾아서 죽일 수 ps aux | grep fubar | grep -v grep있는 보안과 관련이없는 상황에서 주로 사용됩니다 fubar. 그들 중 두 개가 있다고 가정하면 killall부적절합니다.
nigel222

답변:


69

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

grepwithout -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.


이러한 인기있는 방법 중 하나의 단점은 방금 실행 grepgrep명령 이 아닌 경우에도 포함 된 행을 필터링한다는 것입니다. 그들은 심지어하지 않을 수 있습니다 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 전체 명령 줄에서 검색 합니다. 이름 만 검색하려면 생략하십시오.

10
pgrep또 다른 대안에 대해서도 언급 할 가치가 있습니다ps | grep
Fund Monica의 소송

8

grep --help-v플래그가 무엇을 알려줍니다 .

-v, --invert-match        select non-matching lines

-v플래그를 사용 하여 일치를 반전 시킬 수 있습니다 . 즉, 주어진 단어를 포함하지 않는 행과 만 일치합니다. 예를 들어, 단어 막대를 포함하지 않는 모든 행을 인쇄하십시오.

$ grep -v bar /path/to/file

( 더 읽기 ... )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.