grep 명령어 옵션중 -v 에 대한 설명입니다.


man page 설명
           -v                  All lines but those matching are printed.


다음 예제가 쉽게 설명을 해줄것이라 생각되어집니다. 차근차근 보세요.
일반적인 grep 으로 다음과 같은 결과가 나왔다.
$ grep 'printf' fileio.c   
                printf("FILE open Error\n");
                printf("chi = %c\n", chi);
                printf("cho = %c\n", cho);
                printf("FILE open Error\n");
                printf("chi = %c\n", chi);
                printf("cho = %c\n", cho);

-n 옵션을 통해 line 을 볼수 있다.
$ grep -n 'printf' fileio.c 
11:             printf("FILE open Error\n");
18:             printf("chi = %c\n", chi);
19:             printf("cho = %c\n", cho);
25:             printf("FILE open Error\n");
31:             printf("chi = %c\n", chi);
32:             printf("cho = %c\n", cho);

-v 옵션을 통해 'chi' 문자열이 들어간걸 제외하고 print 했다.
$ grep -n 'printf' fileio.c | grep -v 'chi'
11:             printf("FILE open Error\n");
19:             printf("cho = %c\n", cho);
25:             printf("FILE open Error\n");
32:             printf("cho = %c\n", cho);

grep 을 두번 사용해서 보고싶은것만 print 했다.
$ grep -n 'printf' fileio.c | grep -v 'chi' | grep -v 'cho'
11:             printf("FILE open Error\n");
25:             printf("FILE open Error\n");

-Ev 옵션을 통해 여러번 grep 하는것을 파이프(|)로 작성할 수 있다.
$ grep -n 'printf' fileio.c | grep -Ev 'chi|cho'           
11:             printf("FILE open Error\n");
25:             printf("FILE open Error\n");


grep 막강하지요?


페이스북 댓글
티스토리 댓글

+ Recent posts