본문 바로가기

grep 명령어

MintState 2009년 1월 5일 오전 11:39 조회 18292

grep 명령어

/bin/grep은 입력되는 정보에서 패턴을 포함한 줄을 걸러내는 유틸리티입니다. 시스템 관리를 위해 매우 다양하게 쓰이므로 find와 함께 잘 익혀 두어야 합니다.

형식 : grep [OPTION...] PATTERN [FILE]...

아래 표는 grep 명령에서 자주 쓰이는 옵션입니다.

--------------------------------------------------------------------------
짧은이름        긴이름                       기능
--------------------------------------------------------------------------
-h               --no-filename              파일 이름을 감춥니다.
-l                --files-with-matches    파일 목록만 나열합니다.
-n               --line-number             줄번호를 표시합니다.
-i                --ignore-case             대소문자 구분 없이 필터링을 수행합니다.
-w              --word-regexp            완전한 단어만 찾습니다.
-v               --revert-match            패턴을 포함하지 않은 문자열만 걸러냅니다.
--------------------------------------------------------------------------

아래는 grep 명령의 간단한 형식입니다.
현재 디렉토리의 모든 파일에서 문자열 'bash'를 포함한 문서를 필터링합니다:

$ grep bash * 

grep 유틸리티는 일반적으로 명령의 수행결과를 파이프(|)를 통해 입력받아 사용합니다. 예를 들어 ls 명령의 결과로 my 포함한 파일만 출력하고 싶다면 아래처럼 사용합니다.

[root@ns bin]# ls /usr/bin | grep my* 

결과
--------------------------------------------------------------------------
mysql_install_db:if test -x ./bin/my_print_defaults
mysql_install_db:  print_defaults="./bin/my_print_defaults"
mysql_install_db:elif test -x /usr/local/mysql/bin/my_print_defaults
mysql_install_db:  print_defaults="/usr/local/mysql/bin/my_print_defaults"
mysql_install_db:  print_defaults="my_print_defaults"
mysqld_multi:  if (!defined(my_which(my_print_defaults)))
mysqld_multi:    print "WARNING! my_print_defaults command not found!\n";
mysqld_multi:  my @defops = `my_print_defaults mysqld_multi`;
mysqld_multi:  if (!defined(my_which(my_print_defaults)))
mysqld_multi:    print "ABORT: Can't find command 'my_print_defaults'!\n";
mysqld_multi:    $com = "my_print_defaults";
mysqld_multi:    $com = "my_print_defaults";
mysqld_multi:    $com = "my_print_defaults";
mysqldumpslow:    my $defaults   = `my_print_defaults mysqld`;
mysqldumpslow:  or die "Can't determine basedir from 'my_print_defaults mysqld' output: $defaults";
mysqldumpslow:  my $instances  = `my_print_defaults instances`;
mysqldumpslow:  die "Can't determine datadir from 'my_print_defaults mysqld' output: $defaults"
mysqldumpslow:      or die "Can't determine --$opt{i}-datadir from 'my_print_defaults instances' output: $instances";
공유 X Facebook LINE QR 코드

댓글 0개

첫 댓글을 남겨보세요.