grep [옵션] 패턴 [파일]
-i : 대소문자 구분하지 않고 패턴 검색
grep [옵션] [-e 패턴 | -f 파일] [파일]
-e : 여러개 패턴을 검색(검색하고자 하는 패턴이 하나 이상)
-f : 패턴이 저장되어 있는 파일을 여러개 이용해 검색
1) 패턴 사용
대괄호가 앞뒤에 있는 문자열 검색
-e, -i 사용
2) 파일을 사용하는 경우
-f : 파일에 저장된 패턴을 이용
3) | 를 이용
cat으로 확인한 nova.conf 파일 내용이 grep의 검색 대상임
1. grep 정보 옵션
옵션 | 내용 |
--help | grep 도움말 |
-V, --version | grep 버전 정보 및 라이센스 정보 |
# grep --help
# grep -V
2. 패턴 문법
옵션 | 내용 |
-E, --extended-regexp | 확장 정규 표현식에 해당하는 패턴을 검색 |
-F, --fixed-strings | 여러 줄로 되어 있는 문자열을 검색 |
-G, --basic-regexp | 기본 정규 표현식에 해당하는 패턴을 검색할 때, 기본값임에 따라 옵션을 생략하면 -G옵션으로 적용 |
-P, --perl-regexp | Perl 방식의 정규 표현식에 해당하는 패턴을 검색할 때 사용되는 옵션으로 다르 옵션에 비해 잘 사용 되지는 않음 |
1) -E 옵션
#-E옵션 없이 사용
#-E 옵션 사용( 정규표현식 ? 가 적용됨)
2) -F 옵션(패턴이 여러줄일 경우)
3) -G 옵션 (기본 정규식 패턴을 검색, 디폴트)
4) -P 옵션 ( perl에서 사용하는 정규표현식으로 패턴 검색)
['와 , 사이 문자열 검색
3. 매칭 제어
옵션 | 내용 |
-e 패턴, --regexp=패턴 | 여러개 패턴을 검색, OR 조건으로 검색이룸 |
-f 파일, --file=파일 | -e 옵션과 동일 하나 대신 패턴이 파일에 관련 명령어를 넣어 이것을 이용해 검색 |
-i, --ignore-case | 패턴 검색시 대소문자 구분 무시 |
-v, --invert-match | 해당 패턴을 제외하고 검색할 때, 주석을 제거한 파일 내용만 볼 경우 주로 사용 |
-w, --word-regexp | 검색하고자 하는 단어가 정확하게 있는 라인만 검색 |
-x, --line-regexp | 검색하고자 하는 패턴과 정확하게 일치하는 라인만 검색 |
-y | -i 옵션과 동일한 기능 |
일반 문자로 검색
파일로 검색
-i로 대소문자 구분 안함
-v는 해당 패턴 문자가 있는 라인을 제외한 나머지 라인 출력
-w 는 딱 그단어가 일치하는것만 출력
-x 라인전체가 일치할 경우에만 결과를 보여줌
-y 대소문자 구분 안하고 검색할 문자의 그 라인을 출력
4. 출력제어
옵션 | 내용 |
-c, --count | 패턴과 일치하는 단어의 개수 |
--color | GREP_COLORS 환경변수에 의해 정의된 컬러에 맞게 검색한 패턴과 동일한 문자열의 색을 바꿔서 보여줌 |
-L, --files-without-match | 검색 대상이 되는 파일 중 패턴과 일치하는 단어가 없는 파일명을 보여줌 |
-I, --file-with-matches | 검색 대상이 되는 파일 중 패턴과 일치하는 단어가 있는 파일명을 보여줌 |
-m 라인 수, --max-count=라인수 | 패턴과 일치하는 단어가 포함된 라인을 해당 라인 수 만큼 보여줌 |
-o, --only-matching | 패턴과 일치하는 단어만 보여줌 |
-q, --quiet, --silent | 패턴과 일치하는 단어가 있든 없던 아무것도 안 보여줌 |
-s, --no-messages | 존재하지 않거나 읽을 수 없는 파일에 대한 오류 메세지를 안보여줌 |
5.출력라인 제어
옵션 | 내용 |
-b, --byte-offset | 패턴이 포함된 출력라인의 바이트 수를 라인의 제일 앞부분에 함께 보여줌 |
-H, --with-filename | 패턴이 포함된 출력라인의 파일명을 라인의 제일 앞부분에 함께 보여줌 |
-h, --no-filename | -H 옵션과 반대로 패턴이 포함된 출력라인의 파일명을 보여주지 않음 |
--label=LABEL | 파일 목록에서 특정 파일을 검색할 경우 검색라인 제일 앞부분에 라벨을 함께 보여줌, -H 옵션과 함께 사용 |
-n, --line-number | 패턴이 포함된 출력라인 제일 앞부분에 라인 번호를 함께 보여줌 |
-T, --initial-tab | 라인 번호나 파일명이 함께 출력될 경우 탭과 함께 간격을 조정하여 보여줌 |
-u, --unix-byte-offsets | 패턴이 포함된 출력라인의 바이트 수를 유닉스 스타일로 보여줌, 단, -b 옵션과 함께 사용 |
-Z, --null | 채넡이 포함된 파일명을 출력 시 뉴라인이 없이 한줄로 보여줌, -ㅣ 옵션과 함께 사용 |
6. 컨택스트 라인 제어
옵션 | 설명 |
-A 라인 수, --after-context=라인 수 | 패턴이 포함된 라인 후에 선언한 라인 수에 해당하는 라인 만큼 뒤로 라인을 추가 |
-B 라인 수, --before-context=라인 수 | 패턴이 포함된 라인 전에 선언한 라인 수에 해당하는 라인 만큼 앞에 라인을 추가하여 보여줌 |
-C 라인 수, --contest=라인 수 | 패턴이 포함된 라인 전, 후에 선언한 라인 수에 해당하는 라인만큼 앞, 뒤로 라인을 추가하여 보여줌 |
--group-separator=그룹 구분 기호 | 옵션 -A, -B, -C 와 함께 사용할때 패턴을 기준으로 그룹핑을 해주며, 설정한 그룹구분 기호화 함께 그룹핑을 해줌 |
--no-group-separator | 옵션 -A, -B, -C 와 함께 사용할때 기본적으로 패턴을 기준으로 그룹핑을 해주지만, 해당 옵션을 사용하면 그룹핑을 하지 않음 |
7. 파일 및 디렉토리 관련 옵션
옵션 | 내용 |
-a, --text | 바이너리 파일에서 해당 패턴을 검색 |
--binary-files=TYPE | TYPE은 기본적으로 바이너리 이며, text를 사용할 경우 -a옵션과 동일한 기능을 가짐 |
-D ACTION, --devices=ACTION |
ACTION은 read와 skip이 있으며, read일 경우 디바이스에서 패턴을 검색하고, skip일 경우 디바이스를 검색하지 않음 |
-d ACTION, --direcoties=ACTION |
ACTION은 read와 skip이 있으며, read일 경우 디바이스에서 패턴을 검색하고, skip일 경우 디렉토리를 검색하지 않음 |
--exclude=GLOB | GLOB은 검색 대상에서 제외하고자 하는 파일명을 의미하며, 파일명은 *.?./를 사용할 수 있음 |
--exclude-from=FILE | 검색 대상에서 제외할 파일이 명확할 경우 사용 |
--exclude-dir=DIR | 재귀검색에서 패턴 DIR과 일치하는 디렉토리 제외 |
-I(대문자 아이) | 일치하는 데이터를 포함하지 않은 것처럼 이진 파일을처리 , 이것은 --binary-files=without-match옵션과 동일 |
--include=GLOB | --exclude 옵션과 반대로 파일명에 해당하는 파일에서만 검색 |
-r, --recursive | 검색하고자 하는 디렉토리의 하위 디렉토리 파일도 검색 |
-R, --dereference-recursive | 검색하고자 하는 디렉토리의 하위 디렉토리 파일 및 심볼릭 파일까지 검색 |
기타 옵션
옵션 | 내용 |
--line-buffered | grep의 경우 패턴에 일치하는 모든 라인 검색이 완료된 후 화면에 보여주지만, --line-buffered옵션을 사용하면 검색된 라인별로 바로 보여줌, 많은 양의 로그 검색 시 유요하나 많이 사용하면 성능에 영향을 줄 수 있음 |
-U, --binary | 검색 대상 파일을 바이너리로 취급하여 캐리지 리턴(CR)이나 라인피드(LF) 같은 문자를 제거하여 검색함 |
-z, --null-data | 패턴이 포함된 파일의 전체 내용을출력 |
'shell_script' 카테고리의 다른 글
shell 기본 sed (0) | 2021.07.30 |
---|---|
shell 기본 awk (0) | 2021.07.29 |
shell 기본 find (0) | 2021.07.29 |
shell 기본 명령문 (0) | 2021.07.27 |
shell 명령어 (0) | 2021.07.26 |