Linux 상용 명령-grep

3624 단어 Linux
간단 한 소개
grep 명령(Global Regular Expression Print)은 Linux 시스템 의 강력 한 텍스트 검색 도구 로 정규 표현 식 으로 텍스트 를 검색 하고 일치 하 는 줄 을 인쇄 할 수 있 습 니 다.
grep 는 Liux 에서 가장 많이 사용 되 는 3 대 텍스트(awk,sed,grep)처리 도구 중 하나 이기 때문에 그 용법 을 파악 할 필요 가 있 습 니 다.
grep 가족 은 모두 세 명의 구성원 으로 구성 되 어 있다.grep,egrep,fgrep.
사용 형식
grep[옵션]문자열/정규 표현 식[파일]
매개 변수[옵션]
  -a     --text                  。
  -A     --after-context=                   ,          。
  -b     --byte-offset                    ,              。
  -B       --before-context=                   ,          。
  -c   --count              。
  -C    --context=  -                   ,           。
  -d      --directories=                   。        ,  grep            。
  -e     --regexp=                     。
  -E   --extended-regexp                    。
  -f    --file=          ,              , grep             ,           。
  -F    --fixed-regexp                  。
  -G    --basic-regexp                   。
  -h    --no-filename                  ,           。
  -H    --with-filename                  ,          。
  -i     --ignore-case               。
  -l    --file-with-matches                      。
  -L    --files-without-match                       。
  -n    --line-number                  ,          。
  -q   --quiet --silent            。
  -r   --recursive            “-d recurse”    。
  -s   --no-messages          。
  -v   --revert-match       。
  -V  --version          。
  -w   --word-regexp             。
  -x   --line-regexp             。
  -y            “-i”    。
  --help       。

상용 매개 변수[옵션]
-c 일치 하 는 줄 만 출력 하 는 수량-i 대소 문자 구분 없 음(단일 문자 에 만 적용)-h 다 중 파일 을 조회 할 때 파일 이름-l 다 중 파일 을 조회 할 때 일치 하 는 문 자 를 포함 하 는 파일 이름-n 일치 하 는 줄 과 줄 번호-s 는 존재 하지 않 거나 일치 하 는 텍스트 가 없 는 오류 정 보 를 표시 하지 않 습 니 다-v 는 일치 하 는 텍스트 를 포함 하지 않 는 모든 줄 을 표시 합 니 다.
작은 따옴표
grep 명령 에 문자열 인 자 를 입력 할 때 두 따옴표 로 묶 습 니 다.예 를 들 어 grep"error code"./log.txt 가 이렇게 하 는 데 는 두 가지 이유 가 있 습 니 다.하 나 는 문자열 매개 변수 가 셸 명령 으로 오해 되 지 않도록 하 는 것 입 니 다.둘 째 는 여러 단어 로 구 성 된 문자열 을 찾 을 수 있다.따옴표 로 묶 지 않 으 면 단어'code'는 파일 로 오 해 를 받 고 검색 결 과 는'파일 이 존재 하지 않 습 니 다'라 는 오류 정 보 를 되 돌려 줍 니 다.
변 수 를 사용 할 때 도 작은 따옴표 를 사용 해 야 합 니 다.예 를 들 어 grep"$ERROR"./log.txt.그렇지 않 으 면 결 과 를 되 돌려 주지 않 습 니 다.
호출 모드 가[정규 표현 식]과 일치 할 때 작은 따옴표:grep'error.*'./log.txt 를 사용 해 야 합 니 다.
주의 하 다.
(1)현재 디 렉 터 리 를 검색 할 때 기본적으로 grep 는 현재 디 렉 터 리 만 검색 합 니 다.이 디 렉 터 리 에 하위 디 렉 터 리 가 많 으 면 grep 는 다음 과 같이 표 시 됩 니 다.
grep "test" ./*
grep: ./TEST: Is a directory
grep: ./oss: Is a directory
grep: ./    UID: Is a directory

이것 은'grep'의 출력 을 읽 기 어렵 게 할 수 있다.하위 디 렉 터 리 검색 을 명 확 히 요구 하 는 두 가지 해결 방법 이 있 습 니 다:grep-r 하위 디 렉 터 리 무시:grep-d skip
(2)특수 기호\\<과\>는 단어의 시작 과 끝 을 각각 표시 합 니 다.예 를 들 어 grep man./*는'Batman','manic','man'등 과 일치 하고 grep'\grep'\'는'man'만 일치 하 며'Batman','manic'등 다른 문자열 이 아 닙 니 다.
'^':줄 의 첫머리 에 일치 하 는 문자열 을 말 합 니 다.'$':줄 끝 에 일치 하 는 문자열 을 말 합 니 다.
실례
#          .doc         "test"
$ grep  "test"  *.doc   
#    log.txt      "test"       
$ grep  -c  "test"  ./log.txt
#     "test"       
$ grep  -n  "test"  ./log.txt
#        ,   $  .  ‘  ”  *  [ ]  ^  |  \  +  ?    ,     ,       '\' 
#        test.conf    
$grep  "test\.conf"    ./log.txt  
#             [   ]
$ls  -l  |grep  "^d"   
#             
$ls -l |grep  -v  "^d"

좋은 웹페이지 즐겨찾기